Spa*_*nky 5 core-data objective-c nsmanagedobjectcontext
我有这个代码:
NSEntityDescription *userEntity = [[[engine managedObjectModel] entitiesByName] objectForKey:@"User"];
User *user = [[User alloc] initWithEntity:userEntity insertIntoManagedObjectContext:[engine managedObjectContext]];
Run Code Online (Sandbox Code Playgroud)
我想知道插入到托管对象上下文的对象的id.我怎么能得到它?
对于该对象的生命周期,该id是否保持不变,或者它是否会持久保存到此下面的sqlLite数据库,并且可以用于在获取操作期间唯一地标识它(我的最终目标).
任何帮助赞赏// :)
Tec*_*Zen 10
如果要永久保存对象的ID,您需要:
-[NSManagedObjectID URIRepresentation].返回一个NSURL,您可以将其存储为另一个托管对象中的可转换属性.-[NSPersistentStoreCoordinator managedObjectIDForURIRepresentation:]生成新NSManagedObjectID对象-[NSManagedObjectContext objectWithID:]来获取对象,然后使用它来获取实际引用的托管对象.URI应该标识特定计算机上特定存储中的特定对象,但如果对存储进行任何结构更改(例如将其迁移到新的模型版本),则可以更改该URI.
但是,您可能不需要执行任何操作.与其他数据模型系统相比,ObjectID在Core Data中扮演的角色要小得多.Core Data维护一个对象图,该对象图根据图中的位置唯一标识对象.只需遍历图形关系即可转到特定的唯一对象.
您真正需要ObjectID的唯一时间是在两个或多个持久性存储中访问对象时.你需要它们,因为关系不会跨越商店.
| 归档时间: |
|
| 查看次数: |
9928 次 |
| 最近记录: |