Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective-c NSPredicate-跨不同NSManagedObjectContext按ObjectId筛选_Objective C_Filter_Nspredicate_Nsmanagedobjectcontext_Nsfetchedresultscontroller - Fatal编程技术网

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
。不,我只是键入了它,但实际代码与它相似,只是语法错误。