通过objectID跟踪CoreData中访问的对象?

时间:2010-10-27 22:12:52

标签: iphone ipad core-data

我想在CoreData中拥有一个表,其中包含我访问过的其他CoreData对象的列表,例如我有客户端,我想要一个只包含此列表的表RecentClients及其访问日期。

我可以存储objectID,然后根据它执行获取请求吗?

编辑: 请参阅下面的Ben的答案,然后转到此处: http://cocoawithlove.com/2008/08/safely-fetching-nsmanagedobject-by-uri.html

3 个答案:

答案 0 :(得分:4)

您需要通过调用其-URIRepresentation方法将NSManagedObjectID转换为字符串。然后,您可以使用NSPersistentStore的-managedObjectIDForURIRepresentation:方法将字符串转换回NSManagedObjectID。

如果存储字符串,您应该可以执行您所描述的内容,但不会使用获取请求;你将使用 - [NSManagedObjectContext objectWithID:]

答案 1 :(得分:2)

您打算如何存储访问日期?如果将其设置为客户端实体的属性,则可以在每次访问对象时使用该属性,然后使用NSFetchedResultsController获取按访问日期排序的客户端。当然,缺点是每次访问时都要修改实例,这可能并不理想。

答案 2 :(得分:0)

您可以将RecentClients创建为Core Data模型中的另一个实体。然后它与客户实体有一对多的关系。