Objective-c NSPredicate-跨不同NSManagedObjectContext按ObjectId筛选
我将下面的代码用于我的Objective-c NSPredicate-跨不同NSManagedObjectContext按ObjectId筛选,objective-c,filter,nspredicate,nsmanagedobjectcontext,nsfetchedresultscontroller,Objective C,Filter,Nspredicate,Nsmanagedobjectcontext,Nsfetchedresultscontroller,我将下面的代码用于我的NSFetchedResultController NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.objRelationship.ObjectId == %@", objectFromOtherContext.ObjectId]; [fetchRequest setPredicate:predicate]; NSFetchedResultController使用的NSManagedObje
NSFetchedResultController
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.objRelationship.ObjectId == %@", objectFromOtherContext.ObjectId];
[fetchRequest setPredicate:predicate];
NSFetchedResultController
使用的NSManagedObjectContext
与objectFromOtherContext变量的NSManagedObjectContext
不同。NSFetchedResultController
不返回任何数据。但是,如果它们使用相同的NSManagedObjectContext
,则返回一些内容
如果
NSFetchedResultController
的NSManagedObjectContext
与传递给谓词的NSManagedObjectContext
的NSManagedObjectContext
不同,是否有办法通过ObjectId
进行过滤?(假设对象已经保存在持久存储中)。我今天遇到了这个问题。不能在不同上下文中创建的谓词中使用对象,甚至不能使用它的objectID。您需要首先在要搜索的同一上下文中查询对象。或者,您可以尝试执行[newContext objectWithID:objectFromOtherContext.ObjectId],然后在谓词中使用它。这是您的实际代码吗?它应该是objectID
,而不是objectID
。不,我只是键入了它,但实际代码与它相似,只是语法错误。