0

我将 ManagedObject 保存在具有自己上下文的后台线程上。然后,我想使用托管对象上下文将通知发送回主线程,以便我可以使用它的数据。

根据文档,看起来我应该将 id 传递给主线程而不是对象。

这是正确的,那我应该怎么处理那个Id呢?我应该使用 ID 从主线程获取核心数据以在主线程上获取 ManagedObject 吗?

4

2 回答 2

3

您正确理解将对象 ID 传递回主线程。完成此操作后,使用该objectWithID:方法传递NSManagedObjectID从另一个线程发送的消息,将对象从主线程的NSManagedObjectContext实例中取出。

NSManagedObject *objectForThisThread = [managedObjectContextForThisThread objectWithID:managedObjectID];
于 2013-03-05T21:49:49.220 回答
1

另一种方法是使用以下方法

- (NSManagedObject *)existingObjectWithID:(NSManagedObjectID *)objectID error:(NSError **)error

此方法从不返回该对象的错误。

在你的后面线程做一个保存。使用该方法将允许检索保存在后台的对象。

请参阅NSManagedObjectContext类参考

于 2013-03-05T21:52:11.077 回答