直升机家伙,核心 - 数据NSPredicate多到多的条件
,我有以下核心数据的数据库:
(!可惜我不能嵌入图像,因为垃圾邮件预防)
数据库模型图片: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] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'unimplemented SQL generation for predicate : (mistakeFC IN {FCMistake: empty FC; correctFC: 0, FCMistake: 55; correctFC: 9, FCMistake: empty FC; correctFC: 3, FCMistake: empty FC; correctFC: 9, FCMistake: empty FC; correctFC: 4})'
这必须有可能以某种方式!预先感谢您的帮助!
问候,金