Come si scrive una proprietà recuperata per l'entità luogo che presenterà una matrice di utenti?Tabella di join dei dati principali, ha molti predicati delle proprietà through, recuperati
risposta
Per una proprietà recuperata users
di Luogo che recupera tutti gli utenti il cui check-in è legato al luogo determinato , impostare
- la destinazione della proprietà azzardato "utente"
- e il predicato di "ANY checkins.event == $ FETCH_SOURCE"
Ora è possibile ottenere la matrice di utenti per un posto:
Place *place = ...;
NSArray *users = [place valueForKey:@"users"];
Questa struttura inverosimile corrisponde al seguente prendere richiesta:
Place *place = ...;
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"User"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY checkins.event == %@", place];
[request setPredicate:predicate];
NSArray *users = [context executeFetchRequest:request error:&error];
Se si dichiara la proprietà recuperata users
come proprietà dinamica:
@interface Place (FetchedProperties)
@property(nonatomic, retain) NSArray *users;
@end
@implementation Place (FetchedProperties)
@dynamic users;
@end
allora è possibile recuperare il valore utilizzando la sintassi di proprietà:
NSArray *users = place.users;
// instead of: NSArray *users = [place valueForKey:@"users"];
Ma nota che si può ottenere lo stesso risultato (come insieme) direttamente, senza l'utilizzo di una proprietà inverosimile:
Place *place = ...;
NSSet *users = [place.checkins valueForKey:@"user"];
Spero di aver capito bene. Vuoi un elenco di utenti che hanno effettuato il check-in in un determinato luogo?
Poi lo fai il contrario. Si prelevano tutti i User
s che hanno almeno uno Checkin
con un determinato Place
.
In termini di Core-Data avrete bisogno di una subquery per questo.
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"User"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SUBQUERY(checkins, $CHECKIN, $CHECKIN.event == %@)[email protected] > 0", place];
request.predicate = predicate;
/* and so on */
Non c'è molta documentazione su SUBQUERY. Un po 'è scritto nella discussione di expressionForSubquery:usingIteratorVariable:predicate:
.
e la proprietà inverosimile sarebbe nell'entità posto con un utente dell'entità di destinazione e il predicato SUBQUERY(checkins, $CHECKIN, $CHECKIN.event == $FETCH_SOURCE)[email protected] > 0
- 1. OCMock con il problema delle proprietà dinamiche dei dati principali
- 2. Come accedere alle proprietà di una tabella "through" molti-a-molti da un modello django?
- 3. Utilizzo dei dati principali come cache locale per i dati recuperati dai servizi Web remoti
- 4. Ereditarietà delle proprietà principali
- 5. Regole di cancellazione dei dati principali e relazioni molti-a-molti
- 6. Rails - Ordina per dati tabella join
- 7. Gestione dei dati principali Registri delle transazioni iCloud
- 8. One-a-molti con Join Tabella
- 9. Dati principali e proprietà transitorie
- 10. Come posso aggiornare una tabella con i dati recuperati da un join su se stesso?
- 11. Migrazione personalizzata dei dati principali
- 12. Dati principali: utilizzo di Proprietà transitori nel gruppo
- 13. Come si crea un mapping di sospensione da molti a molti per ulteriori proprietà dalla tabella di join?
- 14. Mantenimento dei dati principali nelle future versioni delle app
- 15. Dati principali, ordinamento di oggetti figlio uno-a-molti
- 16. Carica dati nello schema dei dati principali
- 17. Ottimizzazione della ricerca dei dati principali
- 18. Elenco dei tipi di attributo Dati principali?
- 19. Accesso ai dati recuperati
- 20. Relazioni indicizzate nei dati principali
- 21. SQL join sulla tabella di congiunzione con molti a molti rapporti
- 22. Join multi-database molti-a-molti con Flask-SQLAlchemy
- 23. I dati principali vengono inseriti e recuperati in molte entità di relazione
- 24. Dichiarazione di proprietà per più relazioni nei dati principali
- 25. Impostazione dei dati principali One-To-Many in XCode 4.3.1
- 26. Attributi calcolati transitori dei dati principali
- 27. Migrazioni dei dati principali con Magical Record
- 28. Rails ha equivalente a molti passaggi in ASP.NET MVC3
- 29. Dati principali: UITableView con più NSFetchedResultControllers
- 30. come ordinare Core Data proprietà recuperati
Se si desidera ordinare l'utente in base alla proprietà created_at di Checkin, come impostare una chiave descrittore di ordinamento? – Subhash
@Subhash: Non penso che sia possibile aggiungere un descrittore di ordinamento a una proprietà recuperata, è necessario ordinare l'array degli utenti dopo averlo scaricato. - Oppure si utilizza una normale richiesta di recupero in cui è possibile aggiungere un descrittore di ordinamento. –
Grazie per la risposta. Ho un modello simile a quello sopra menzionato e utilizzo il controller fetch per recuperare i dati. Quando imposto la chiave di ordinamento come created_at, ottengo un errore come "Exception = to-many key not allowed here". Si tratta di una limitazione con il controller Fetch? La soluzione sopra menzionata (senza usare il controller fetch) è l'unico modo per risolvere questo problema? – Subhash