Casa Social media Come utilizzare il record attivo nelle app iOS - dummies

Come utilizzare il record attivo nelle app iOS - dummies

Video: Come vedere, gestire ed eliminare gli abbonamenti in iPhone e iPad 2024

Video: Come vedere, gestire ed eliminare gli abbonamenti in iPhone e iPad 2024
Anonim

Il record attivo è un modello semplice, in cui la classe dell'oggetto modello in memoria viene estesa con metodi che gestiscono la persistenza della classe. Di seguito è riportato un esempio che utilizza una tabella denominata PERSONTABLE per mantenere gli oggetti di una classe Person in un database relazionale come il data-store. Questo è il file di interfaccia della classe Person:

@interface Person: NSObject {// Attributi del modello @private NSString * Nome; @ private NSString * SSNo;} - (id) init; - (id) initWithOIDNameAndSSNo: (NSString *) OID: (NSString *) aName: (NSString *) aSSNo; - (NSString *) getName; - (NSString *) getSSNo; - (void) setName: (NSString *) aName; - (void) setSsno: (NSString *) aSSNo; - (void) setAsRetired; // Altre operazioni, se presenti -d

Solo i metodi di dominio sono mostrati in questa interfaccia. I metodi aggiuntivi necessari per la persistenza sono definiti nel protocollo Persistable:

typedef enum {NEW, EXISTS, CHANGED, DELETED} STATE; @protocol Persistable // Proprietà richieste dal protocollo @required @property (copia) NSString * OID; // ID univoco nel database @required @property (readonly) STATE state; + (id) findByOID: (NSString *) OID; - (vuoto) inserire; - (vuoto) aggiornamento; - (void) delete; - (void) persist; -d

Questo protocollo dichiara due attributi obbligatori:

  • L'attributo OID : Questo attributo mantiene l'ID persistente dell'oggetto che identificherà univocamente l'oggetto all'interno di un data-store permanente.

  • L'attributo stato : Questo attributo indica se l'oggetto

    • è stato appena creato in memoria (lo stato è NUOVO).

    • Esiste nel database (lo stato è ESISTENTE).

    • È stato modificato in memoria dopo essere stato scaricato dall'archivio dati (lo stato è MODIFICATO).

    • È contrassegnato per la cancellazione (lo stato è ELIMINATO).

Il protocollo dichiara quindi una raccolta di metodi che la classe deve implementare. Si utilizza il metodo di classe FindByOid per portare un oggetto dal database in memoria. (Tali metodi sono conosciuti come finder metodi e puoi avere molti tipi diversi di loro, come findByName, findBySSNo e così via.) Lo pseudocodice per implementare questo metodo nella classe Person è mostrato qui:

+ (id) findByOID: (NSString *) anOID {Person * returnedPerson; // Istruzione SQL per recuperare l'oggetto dal database // Salva NAME e SSNO recuperati nelle variabili locali aName e anSSNo … SELECT NAME, SSNO, da PERSONTABLE dove OID =: anOID INTO: aName,: anSSNo; aPerson = [[Assegnazione persona] initWithOIDNameAndSSNo: anOID: anSSNo]; aPerson-> state = ESISTENTE; return returnedPerson;}

La logica di questo metodo è la seguente:

  • L'istruzione SQL SELECT incorporata recupera gli attributi del nome e della sicurezza sociale dell'oggetto dal database e salva questi valori nelle variabili locali aName e anSSNo.

  • Queste variabili insieme all'OID creano un'istanza e inizializzano un oggetto della classe Person e lo restituiscono.

Successivamente, si vede l'implementazione degli altri metodi dal protocollo Persistable, nella classe Person. Il metodo persist viene chiamato ogni volta che l'oggetto deve essere salvato nel database, come mostrato qui:

- (void) persist {// Controlla lo stato dell'oggetto // Se è un nuovo oggetto i. e. state = NEW call [self insert] // per creare una voce in PERSONTABLE // Se stato = EXISTS non fa nulla // Se stato = CHANGED, chiama update per aggiornare il database // Se stato - DELETED, chiama delete per rimuovere le informazioni // nel database}

Il metodo persist usa la variabile di stato per invocare i giusti metodi per la persistenza dell'oggetto.

  • Se l'oggetto è stato appena creato, un record viene inserito nella tabella dell'oggetto usando il metodo insert, come mostrato qui:

    - (void) insert {REPLACE INTO PERSONTABLE (OID, NAME, SSNO) VALORI: OID: Nome: SSNo …}
    
  • Se l'oggetto viene richiamato dal database e quindi modificato in memoria, viene chiamato il metodo di aggiornamento.

    - (vuoto) aggiornamento {AGGIORNAMENTO IMPOSTABILE IMPOSTAZIONE VALORI NOME =: Nome, SSNO =: SSNo DOVE OID =: OID …}
    
  • Se l'oggetto viene richiamato dal database e quindi contrassegnato per l'eliminazione in memoria, l'eliminazione il metodo è chiamato.

- (void) delete {DELETE FROM PERSONTABLE WHERE OID =: OID; …}

Si noti che i metodi del dominio e i metodi del finder dovrebbero impostare lo stato dell'oggetto in modo appropriato. Di conseguenza, init imposta lo stato dell'oggetto su NEW, findByOID imposta lo stato su EXISTING, setAsRetired potrebbe potenzialmente impostare lo stato su DELETED, setName e setSSNo impostare lo stato su CHANGED (se lo stato originale era ESISTENTE), quindi sopra.

I metodi di dominio e i metodi di persistenza sono, quindi, in qualche modo accoppiati.

Quando si utilizza Active Record per archiviare oggetti in un database relazionale, in genere esegue il mapping di un oggetto a una tabella di database, con le variabili persistenti dell'oggetto mappate ai campi in quella tabella.

Tutta la logica di gestione del ciclo di vita dell'oggetto - decidere quando prelevarlo dal database, se consentire un'istanza duplicata in memoria corrispondente allo stesso oggetto nel database, quando salvare, quando eliminare oggetti in modo permanente - le responsabilità dell'applicazione.

Come utilizzare il record attivo nelle app iOS - dummies

Scelta dell'editore

Come utilizzare una Sitemap XML per SEO - dummies

Come utilizzare una Sitemap XML per SEO - dummies

Per fare in modo che la tua Sitemap XML essere utile per SEO, la Sitemap XML dovrebbe essere costruita secondo il formato corrente del Protocollo Sitemap (che è regolato da Sitemaps.org). Il protocollo Sitemap consente di indicare ai motori di ricerca gli URL sul tuo sito web che devono essere sottoposti a scansione. Una Sitemap XML è un documento che utilizza ...

Come utilizzare gli operatori di ricerca avanzata per SEO - dummies

Come utilizzare gli operatori di ricerca avanzata per SEO - dummies

I motori di ricerca hanno escogitato strumenti chiamati operatori di ricerca avanzati per dare agli utenti esperti un controllo ancora maggiore durante la ricerca. Gli operatori di ricerca avanzati sono termini speciali che è possibile inserire nella query di ricerca per trovare tipi specifici di informazioni che una ricerca generale non può fornire. Molti di questi operatori forniscono strumenti utili per ...

Come utilizzare tag titolo efficace per una migliore classificazione e branding con motori di ricerca

Come utilizzare tag titolo efficace per una migliore classificazione e branding con motori di ricerca

L'indiscusso headliner della sezione head delle pagine Web è il tag Title. Sebbene i vari motori di ricerca non spieghino quanto sia importante un elemento nei loro algoritmi, la maggior parte degli esperti del settore concorda sul fatto che il tag Title è uno dei più critici. Perché il tag Title non solo mostra ...

Scelta dell'editore

Funzioni cinematografiche sulla tua DSLR - dummies

Funzioni cinematografiche sulla tua DSLR - dummies

Mentre la tua reflex è piena di funzioni, funzioni, campane e fischietti alcuni di loro sono importanti quando si tratta di fare film. Ecco un manuale di base sulle funzioni DSLR che sono importanti per la realizzazione di filmati. Velocità dell'otturatore cinematografico L'acquisizione video utilizza una piccola selezione del quadrante di scatto, che generalmente va da 1/30 di secondo a ...

Scorciatoie da tastiera flipShare - dummies

Scorciatoie da tastiera flipShare - dummies

Dopo aver girato video con la videocamera Flip, probabilmente vorrai modificare quei video, che puoi fare abbastanza facilmente nel software FlipShare fornito con la videocamera Flip. Puoi usare il mouse per selezionare clip video e foto, navigare nei menu e inviare comandi nell'interfaccia FlipShare, ma puoi fare ...

Trova l'angolazione migliore per la tua pellicola DSLR - manichini

Trova l'angolazione migliore per la tua pellicola DSLR - manichini

L'angolazione della fotocamera parla del messaggio DSLR il film sta cercando di trasmettere. Quando aggiungi queste variazioni effettive, fornisce un bel supplemento agli scatti ampi, normali e teleobiettivo di ogni scena. Questo è utile quando stai modificando il tuo film. Prova ad includere alcuni di questi scatti nel tuo prossimo film: ...

Scelta dell'editore

Conversione di miglia all'ora in minuti per miglio - manichini

Conversione di miglia all'ora in minuti per miglio - manichini

Se usi un tapis roulant come parte della tua maratona formazione, potrebbe essere necessario una formula per convertire miglia all'ora a minuti per miglio. Segui questi passaggi per vedere come: dividi 60 per miglia o miglia all'ora visualizzate sul tapis roulant. Ad esempio, se il tapis roulant dice che stai correndo 7. 1 miglia all'ora, dividi 60 ...

Fare una lista di controllo per il giorno della maratona - manichini

Fare una lista di controllo per il giorno della maratona - manichini

Come diceva un allenatore, se non si riesce a pianificare, si prevede di fallire. Pianifica una maratona di successo con questa lista di cose che non vuoi dimenticare durante la maratona: fai una piccola colazione contenente da 300 a 400 calorie di carboidrati e proteine ​​1. 5 o 2 ore prima della partenza. ...

Interpretare i tempi di corsa per la maratona - manichini

Interpretare i tempi di corsa per la maratona - manichini

Quando ti alleni per una maratona, il tempo impiega un intero nuova dimensione - e vocabolario. Dalle frazioni di miglio (il tempo in cui corri per ogni miglio di una maratona) ai tempi di fine (il tuo tempo complessivo per una gara) alla velocità visualizzata sul tuo tapis roulant, i maratoneti devono affrontare numeri di tutti i tipi. Continua a leggere ...