我正在尝试的是这个:
1)创建一个新的manged对象
2)获取它的临时ID [myMO objectID];
3)将该ID转换为NSURL,因此我可以将其保存以备将来参考:
NSManagedObjectID *moID = [myMO objectID];
NSURL *url = [moID URIRepresentation];
Run Code Online (Sandbox Code Playgroud)
4)保存托管对象上下文
5)一段时间后,使用NSURL作为ID获取该对象
NSManagedObjectID *moID = [[context persistentStoreCoordinator] managedObjectIDForURIRepresentation:url];
Run Code Online (Sandbox Code Playgroud)
并猜测:它不起作用.我从后面得到一个空愚蠢的物体
NSManagedObject *myOldMo = [context existingObjectWithID: moID error:&error];
Run Code Online (Sandbox Code Playgroud)
但是......正如我所说的......创建托管对象时,ID是临时的.因此,为什么这根本不起作用是有道理的.我必须首先保存上下文,然后我得到一个persistet ID.真实的.对?
那是怎么走的?
1)创建托管对象
2)保存上下文
3)获取ID为NSURL
4)任何时候以后,例如在你的下一个生日,使用NSURL访问托管对象;-)
我试着梦想NSManagedObjectID就像一个DB id,我可以写在一些黄色的postIt表上并粘贴在我的显示器中间,所以我在午餐后再回头看它.你知道......至少就像过去我们通过telnet使用数据库并手动执行SQL命令来查询订单信息等等.身份证一直是最重要和最重要的事情.
但Core Data有一些奇怪的NSManagedObjectID事情.
你的秘密策略是什么?您是否真的认识到需要NSManagedObjectID的许多用例?或者那是我以后可以轻易忘记的事情,没有任何痛苦?
ohh*_*rob 11
我不确定这是一个如此大的秘密.该文档描述了从以下方式获取托管对象的永久ID的方法NSManagedObjectContext:
- (BOOL)obtainPermanentIDsForObjects:(NSArray *)objects error:(NSError **)error
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3773 次 |
| 最近记录: |