Привет, ребята,
У меня есть следующая база данных основных данных:
(К сожалению, я не могу встроить изображение из-за предотвращения спама!)
База данныхизображение модели: http://snapplr.com/eqx9
Я пытаюсь создать fetchRequest, который выбирает все объекты FC, чье свойство fcCollection.fcSets.trainingSet
является объектом в моем коде, НО не находится в trainingSet.memorizationSession.mistakeFCs
.Я хочу использовать его в NSFetchedResultsController
.
Я пробовал так много разных вещей, и все они не работали (К сожалению, я не сохранил то, что я пытался, поэтому я не могу опубликовать).Но я пробовал SUBQUERIES и так далее.Мой последний подход заключается в следующем:
NSFetchRequest *fetchRequest = [[[NSFetchRequest alloc] init] autorelease];
NSEntityDescription *entity = [NSEntityDescription entityForName: kFCMistakeEntityName
inManagedObjectContext: self.managedObjectContext];
[fetchRequest setEntity: entity];
NSPredicate *subPredicate = [NSPredicate predicateWithFormat:
@"memorizationSession.trainingSet == %@", _trainingSet];
[fetchRequest setPredicate: subPredicate];
NSArray *mistakeFCs = [self.managedObjectContext executeFetchRequest:fetchRequest error: nil];
predicate = [NSPredicate predicateWithFormat:
@"ANY fcCollection.fcSets.trainingSet == %@ && NOT mistakeFC in %@", _trainingSet, mistakeFCs];
К сожалению, я получаю эту ошибку:
2011-05-18 22: 26: 55.643 testApp [9464: 207] * Завершение приложения из-за неисследованного исключения «NSInvalidArgumentException», причина: «невыполненная генерация SQL для предиката: (errorFC IN {FCMistake: пустой FC; правильное FC: 0, FCMistake: 55; правильное FC: 9, FCMistake: пустое FC;правильный FC: 3, FCMistake: пустой FC; правильный FC: 9, FCMistake: пустой FC; правильный FC: 4}) '
Это должно быть как-то возможно!Заранее спасибо за помощь!
Привет, Ким