È necessario utilizzare predicato con objectID del A, in questo modo:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *BEntity = [NSEntityDescription entityForName:@"B" inManagedObjectContext:moc];
[fetchRequest setEntity:BEntity];
NSPredicate *predicate = [NSPredicate
predicateWithFormat:@"(relationship_to_a = %@)", [yourAInstance objectID]];
[fetchRequest setPredicate:predicate];
dove relationship_to_a è il nome della relazione con A nell'oggetto gestito B.
Spero che questo aiuti.
Btw .: Per tutte quelle altre risposte che suggerisce di utilizzare gli errori dal set rapporto: ho provato io stesso, ed è stato modo più lento di andarli a prendere, perché a quanto pare Core Data fuoco l'uno dopo l'altro i difetti (non in batch), quindi rendendolo dolorosamente lento per set più grandi.
In realtà, se si ottiene l'Un'istanza per il recupero, allora si può provare a impostare relationshipKeyPathsForPrefetching nel vostro NSFetchRequest su YES, e poi tutti gli oggetti nel rapporto non dovrebbe essere difetti. Ma questo non ha funzionato per me, quindi mi sono bloccato con la 'soluzione di recupero'.
fonte
2013-04-13 17:27:07
Vorrei fare questa domanda perché voglio che gli oggetti B siano ordinati per data. E penso che potrebbe essere più veloce e meno intensivo della CPU che il database dei dati di base possa presortare un grande set (potenzialmente più di 200) di oggetti invece di usare il codice. –
Devin: se si desidera ordinare gli oggetti B, è necessario aggiungerli alla domanda originale. Mi piacerebbe sapere anche la risposta! –
Anche io sono interessato a questo: http://stackoverflow.com/questions/4003659/is-it-possibile-per-have-core-data-sort-il-mano-parte-di-una-molti -relationship-d. So che puoi forzare un errore. Mi chiedo se puoi ordinarlo quando lo fai? – JoBu1324