Я пытаюсь принести кучу записей определенного типа, на основе списка типов, определенных пользователем ...Поддерживает ли CoreData на iPhone предикаты 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];
... при запуске, сообщение executeFetchRequest бросает исключение ...
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'unimplemented SQL generation for predicate : (type IN {71, 73, 70, 72, 74})'
Я сделал что-то не так, или это действительно не поддерживается?
Это должно сработать, но я не могу на всю жизнь понять, почему это не так. Прочитайте документ синтаксиса String формата Predicate и посмотрите, можете ли вы найти что-либо: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html – Tim
Согласовано. Вы можете попробовать NSArray вместо NSSet, но это должно работать как написано. –
Если вы его работаете, вы должны пометить один из ответов как правильный. –