Cómo utilizar registro activo en aplicaciones ios

Active Record es un patrón simple, en el que la clase del modelo de objetos en memoria se amplía con los métodos que se encargan de la persistencia de la clase. Lo que sigue es un ejemplo que utiliza una tabla llamada PERSONTABLE de persistir objetos de una clase Persona en una base de datos relacional como el almacén de datos. Este es el archivo de interfaz de la clase Persona:

Video: ►TUTORIAL | Como Canjear Tarjetas iTunes, Musica, Apps, & Mas • En Español. 

Persona @interface: NSObject  {// atributos Modelo @ NSString privada * Nombre @ privada NSString * SSNo -} - (id) init - (id) initWithOIDNameAndSSNo: (NSString *) OID: (NSString *) unNombre: (NSString *) aSSNo - ( NSString *) getNombre - (NSString *) getSSNo - (void) setName: (NSString *) unNombre - (void) setSsno: (NSString *) aSSNo - (void) setAsRetired - // Otras operaciones, si Any- re

Sólo los métodos de dominio se muestran en esta interfaz. Los métodos adicionales que se necesitan para la persistencia se definen en el protocolo con persistencia:

typedef enum {NUEVO, existe, modificarse, borrarse} @ por el estado de protocolo con persistencia // propiedades requeridas por el protocolo requerido @ @ propiedad (copia) NSString * OID- // Steam ID en la base de datos necesaria @ @ propiedad estatal ESTADO (sólo lectura) - + (id) findByOID: (NSString *) OID-- (void) insert-- (void) update-- (void) delete-- (void) persisten - d

Este protocolo declara dos atributos requeridos:

Video: TUTORIAL | Aprende a usar Cydia & que instalar después del jailbreak

  • los OID atributo: Este atributo contiene el ID persistente del objeto que identificará de forma única el objeto dentro de un persistente de datos de la tienda.

    Video: Pasa tus Playlist completas a diferentes apps| SongShift| Review iOS 10

  • los estado atributo: Este atributo indica si el objeto

  • Fue recién creada en la memoria (estado es NUEVO).

  • Existe en la base de datos (estado es existente).

  • Fue modificada en la memoria después de haber sido descargue de la-almacén de datos (estado se cambia).

  • Está marcado para su eliminación (estado se elimina).

El protocolo a continuación, declara una colección de métodos que la clase necesita implementar. Se utiliza el método de la clase FindByOid para traer un objeto de la base de datos en la memoria. (Tales métodos se conocen como descubridor métodos, y usted puede tener muchos tipos diferentes de ellos, como un findByName, findBySSNo, y así sucesivamente) Pseudocódigo para la aplicación de este método en la clase de persona que se muestra aquí.:

+ (Id) findByOID: (NSString *) anOID {* Persona returnedPerson - // declaración de SQL para recuperar objetos de la base de datos // Guardar recuperada NOMBRE y SSNO en las variables locales y unNombre anSSNo ... SELECT NAME, SSNO, desde PERSONTABLEwhere OID =: anOID INTO: unNombre,: anSSNo-aperson = [alloc Person [] initWithOIDNameAndSSNo: anOID: anSSNo] -aPerson-gt; STATE = EXISTENTE-retorno returnedPerson-}

La lógica de este método es el siguiente:

  • La instrucción SELECT de SQL incrustado obtiene el nombre y los atributos número de seguridad social del objeto de la base de datos y guarda estos valores en las variables locales y unNombre anSSNo.

  • Estas variables, junto con la instantiate OID e inicializar un objeto de la clase Person y lo devuelve.

    Video: iOS 8 novedades Cómo ver datos de salud en health en ios 8 iPhone 5S iOS 8 consejos

A continuación, se ve la aplicación de los otros métodos de protocolo con persistencia, en la clase de persona. El método de persistir se llama cada vez que el objeto necesita ser guardado en la base de datos, como se muestra aquí:

- (Void) {// persistir Compruebe el estado del objeto // Si se trata de un nuevo objeto es decir, el estado = nueva llamada [auto inserción] // para crear una entrada en PERSONTABLE // Si el estado = Existe hacer nada // Si el estado = cambiado, actualización llamada para actualizar la base de datos // Si el estado - eliminado, llamar a delete para eliminar la información // en la base de datos}

El persisten método utiliza la variable de estado para invocar los métodos adecuados para la persistencia del objeto.

  • Si el objeto es de nueva creación, se inserta un registro en la tabla del objeto mediante el método de inserción, como se muestra aquí:

    - (Void) {insertar INSERT INTO PERSONTABLE (OID, NOMBRE, SSNO) VALORES: OID: Nombre: SSNo ...}
  • Si el objeto se recupera de la base de datos y luego modificado en la memoria, se llama el método de actualización.

    - (Void) {actualización ACTUALIZACIÓN PERSONTABLE establecer valores NOMBRE =: Nombre, SSNO =: = SSNoWHERE OID: OID ...}
  • Si el objeto se recupera de la base de datos y marcado para su eliminación en la memoria, se llama al método de eliminación.

- (Void) {eliminar CANCELACIÓN de PERSONTABLE DONDE OID =: OID -...}

Tenga en cuenta que los métodos de dominio, así como los métodos de búsqueda deben establecer el estado del objeto de manera apropiada. Como resultado, init establece el estado del objeto a nuevo, findByOID establece el estado a EXISTENTE, setAsRetired potencialmente podría establecer el estado de eliminado, setName, y setSSNo establecer el estado a cambiarse (si el estado original fue existente), y así en.

Los métodos de dominio y los métodos de persistencia son, por lo tanto, acoplados a un cierto grado.

Cuando se utiliza Active Record para almacenar objetos en una base de datos relacional, que por lo general se asigna un objeto a una tabla de base de datos, con variables persistentes del objeto asignadas a los campos de esa tabla.

Toda la lógica de gestión del ciclo de vida del objeto - la decisión de cuándo buscarla a la base de datos, si se permite la instancia duplicada en la memoria correspondiente al mismo objeto en la base de datos, al salvar en función de eliminar objetos permanently- son las responsabilidades de la aplicación .

Artículos Relacionados