Como usar o registro ativo no ios

Active Record

É um padrão simples, em que a classe do modelo de objeto-memory in é estendido com métodos que manipulam a persistência da classe. A seguir é um exemplo que usa uma tabela chamada PERSONTABLE persistir objetos de uma classe Pessoa em um banco de dados relacional como o armazenamento de dados. Este é o arquivo de interface da classe Person:

Pessoa @interface: NSObject  {// atributos Modelo @ NSString privada * Nome @ NSString privada * SSNo -} - (id) de inicialização - (id) initWithOIDNameAndSSNo: (NSString *) OID: (NSString *) aName: (NSString *) aSSNo - ( NSString *) getName - (NSString *) getSSNo - (void) setName: (NSString *) aName - (void) setSsno: (NSString *) aSSNo - (void) setAsRetired - // Outras operações, se qualquer- d

Apenas os métodos de domínio são mostrados nesta interface. Os métodos adicionais necessários para a persistência são definidos no protocolo Persistable:

enum typedef {NEW, existe, mudado, suprimido} State- @ protocolo Persistable // propriedades requeridas pelo @ protocolo necessário @ propriedade (cópia) NSString * OID- // ID Único no @ banco de dados necessário @ propriedade (somente leitura) estado ESTADO - + (id) findByOID: (NSString *) OID-- (void) insert-- (void) update-- (void) delete-- (void) persistem - d

Este protocolo declara dois atributos necessários:

  • o OID atributo: Este atributo contém o ID persistente do objeto que irá identificar exclusivamente o objeto dentro de uma data-armazenamento persistente.

  • o Estado atributo: Este atributo indica se o objeto

    Video: Como activar FaceTime prender FaceTime en iPhone iPad iPod

  • Foi recém-criado na memória (estado é NEW).

  • Existe na base de dados (estado é EXISTENTE).

  • Foi modificado na memória depois de ser obtido a partir da loja de dados (estado é alterado).

  • Está marcado para eliminação (estado é excluído).

Video: Como crear una cuenta de app store para mi iphone 5S 5C 5 4 iOS 7 español Channeliphone

O protocolo, então, declara uma coleção de métodos que a classe precisa implementar. Você usa o FindByOid método de classe para trazer um objeto do banco de dados na memória. (Tais métodos são conhecidos como inventor métodos, e você pode ter muitos tipos diferentes deles, como um findByName, findBySSNo, e assim por diante) Pseudocódigo para a implementação deste método na classe Pessoa é mostrado aqui.:

+ (Id) findByOID: (NSString *) anOID {Pessoa * returnedPerson - declaração // SQL para recuperar o objeto do banco de dados // Guardar recuperado NOME e SSNO em variáveis ​​locais aName e anSSNo ... SELECT NOME, SSNO, de PERSONTABLEwhere OID =: anOID EM: aName,: anSSNo-aperson = [[Pessoa alloc] initWithOIDNameAndSSNo: anOID: anSSNo] -aPerson-gt; estado = EXISTENTE-retorno returnedPerson-}

A lógica desse método é o seguinte:



  • A instrução SQL SELECT incorporada busca o nome e os atributos número da Segurança Social do objeto do banco de dados e salva estes valores nas variáveis ​​locais aName e anSSNo.

  • Estas variáveis, juntamente com a instanciar OID e inicializar um objeto da classe Person e devolvê-lo.

    Video: Hands On: iOS 9 - iPhone e iPad

Em seguida, você ver a implementação dos outros métodos do protocolo Persistable, na classe Pessoa. O método persistir é chamado sempre que o objeto precisa ser salvo no banco de dados, como mostrado aqui:

- (Void) {// persistir Verifique o estado do objeto // Se é um novo objeto ou seja state = nova chamada [auto inserção] // para criar uma entrada no PERSONTABLE // Se state = EXISTE não fazer nada // Se o estado = MUDOU, atualização chamada para atualizar o banco de dados // Se o estado - excluído, chamar delete para remover as informações // no banco de dados}

A persistir método usa a variável de estado para invocar os métodos adequados para a persistência do objeto.

  • Se o objecto é criado recentemente, uma ficha é inserida na tabela do objecto utilizando o método de inserção, como mostrado a seguir:

    - (Void) inserir {INSERT INTO PERSONTABLE (OID, nome, SSNO) VALUES: OID: Nome: SSNo ...}
  • Se o objeto é recuperado do banco de dados e, em seguida, modificado na memória, o método de atualização é chamado.

    - (Void) {atualização ATUALIZAÇÃO PERSONTABLE definir valores NAME = Nome, SSNO =: SSNoWHERE OID =: OID ...}
  • Se o objeto é recuperado do banco de dados e, em seguida, marcado para exclusão na memória, o método delete é chamado.

- (Void) delete {DELETE FROM PERSONTABLE ONDE OID =: OID -...}

Note-se que os métodos de domínio, bem como os métodos de busca deve definir o estado do objecto de forma adequada. Como resultado, o init define o estado do objeto a NOVO, findByOID define o estado para existente, setAsRetired poderia definir o estado para excluído, setName e setSSNo definir o estado para alterado (se o estado original já existente), e assim por em.

Os métodos de domínio e os métodos de persistência são, portanto, acoplada a um certo grau.

Quando você usa o Active Record para armazenar objetos em um banco de dados relacional, que normalmente mapeia um objeto a uma tabela de banco de dados, com variáveis ​​persistentes do objeto mapeados para campos dessa tabela.

Video: Tutorial:Bypass Apple ID Activation,iOs 9.3.modo de uso em iCloud,iPhone,iPad,iPod Touch,PT-BR

Toda a lógica de gerenciamento de ciclo de vida do objeto - decidir quando buscá-lo a partir do banco de dados, se a permitir instância duplicada na memória correspondente ao mesmo objeto no banco de dados, quando para salvar, quando excluir objetos permanently- são responsabilidades do aplicativo .


Publicações relacionadas