Gestione della quantità dinamica di stringhe per la memorizzazione persistente e di runtime in un'app IOS

2

Sfondo

Sto costruendo dinamicamente una dichiarazione di query FQL e, data la natura dell'app, escludo i membri della famiglia FB, questa è la parte di base della query e rimane abbastanza statica. La query restituisce l'immagine del profilo FB e la visualizzo sull'interfaccia utente.

Tuttavia, dopo che gli amici dell'FB sono stati visualizzati nell'interfaccia utente, desidero dare all'utente la possibilità di selezionare un amico FB restituito per non essere mai restituito nelle query future e per restituire un nuovo utente in tale posizione utente

Attualmente sto memorizzando l'altro membro restituito uid come esclusione temporanea in una matrice mutevole, per evitare che membri duplicati siano sullo schermo contemporaneamente, sto anche memorizzando il membro escluso in una diversa matrice mutabile.

Quindi creo l'istruzione della query inserendo dinamicamente l'esclusione di tutti gli uid nell'array temporaneo e nell'array escluso e quindi eseguo il dump dell'array temporaneo dopo che ho restituito un nuovo utente al posto di chi ha scelto di escludere.

Domande

Quali sono alcuni consigli su quanto segue:

  1. memorizzando questi uids esclusi (stringhe) durante la vita dell'app? ricorrere a un metodo di archiviazione persistente (core data / sqlite) o archiviare in un array che fa parte di un oggetto utente (NSUSer Defaults sembra una scelta sbagliata in quanto questo elenco può potenzialmente essere molto lungo)

  2. Quali sono i consigli su alcuni archivi persistenti in modo che le esclusioni possano essere inserite in una dichiarazione di query dopo l'arresto e l'avvio dell'app (i dati di base / sqlite / nsuserdefaults sembrano essere le uniche opzioni qui, sembra che userdefaults il meno favorevole perché la ragione sopra menzionata)

  3. Quali sono i consigli su come iniettare questa quantità sconosciuta di uids (stringhe) in una istruzione di query FQL che sarà una stringa stessa?

posta drD 13.06.2013 - 20:45
fonte

1 risposta

0

Il migliore sarà quello di memorizzare tutti i tuoi oggetti FQL in Core Data e filtrarli con alcune proprietà, come questa.

 typedef enum {
     kFamily = 0,
     kActiveFriend = 1,
     kNonActiveFriend = -1
    } TypeCheck;

    @interface CoreDataFQLObject : NSManagedObject
    @property (nonatomic, retain) NSNumber *checkType;
    @end

Un enint hint è un numero intero in Dati principali. È necessario impedire all'utente non amico di apparire sul nuovo account di accesso. Per questo è possibile eliminare il file .sqlite e ricrearlo di nuovo quando l'utente tenta di accedere con le credenziali di un altro account. Oppure puoi creare uno schema di Core Data con una regola da uno a molti per l'utente che ha appena effettuato l'accesso a "me ()". Non dimenticare di verificare la duplicazione sull'operazione di inserimento.

    
risposta data 24.09.2013 - 12:52
fonte

Leggi altre domande sui tag