Sto cercando di prendere un gruppo di record di un certo tipo, sulla base di un elenco di tipi definiti dall'utente ...CoreData su iPhone supporta i predicati IN?
[fetchRequest setEntity:[NSEntityDescription entityForName:@"myRecord" inManagedObjectContext:self.managedObjectContext]];
NSSet *shipTypes = [NSSet setWithObjects:[NSNumber numberWithInt:70],
[NSNumber numberWithInt:71],
[NSNumber numberWithInt:72],
[NSNumber numberWithInt:73],
[NSNumber numberWithInt:74],
nil];
NSPredicate *aPredicate = [NSPredicate predicateWithFormat:@"type in %@", shipTypes];
[fetchRequest setPredicate:aPredicate];
theRecords = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
... quando viene eseguito, il messaggio executeFetchRequest genera un'eccezione ...
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'unimplemented SQL generation for predicate : (type IN {71, 73, 70, 72, 74})'
Ho fatto qualcosa di sbagliato, o questo non è davvero supportato?
che dovrebbe funzionare, ma non posso per la vita di me capire perché non lo è. Leggere il predicato Formato document String Sintassi e vedere se è possibile trovare qualsiasi cosa: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html – Tim
Concordato. Potresti provare un NSArray invece di un NSSet, ma dovrebbe funzionare come scritto. –
Se hai funzionato dovresti contrassegnare una delle risposte come corretta. –