hzx*_*zxu 7 core-data nsmanagedobject
我需要为索引数据提供一些唯一且一致的ID,我尝试使用NSManagedObject的objectID,但看起来对于同一个实体,它的objectID不断变化,是否有人知道这是不一致的?
lna*_*ger 18
除非您尚未保存新对象,否则objectID是唯一且一致的.
引用核心数据编程指南:
托管对象ID和URI
NSManagedObjectID对象是托管对象的通用标识符,并为核心数据框架中的统一提供了基础.托管对象ID在单个应用程序中的托管对象上下文之间以及多个应用程序(如在分布式系统中)中唯一标识相同的托管对象.与数据库中的主键一样,标识符包含准确描述持久存储中的对象所需的信息,但不公开详细信息.该框架完全封装了"外部"信息,并呈现了一个干净的面向对象的接口.
Run Code Online (Sandbox Code Playgroud)NSManagedObjectID *moID = [managedObject objectID];对象ID有两种形式.首次创建托管对象时,Core Data会为其分配一个临时ID; 只有将其保存到持久性存储时,Core Data才会为托管对象分配永久ID.您可以轻松发现ID是否是临时的:
Run Code Online (Sandbox Code Playgroud)BOOL isTemporary = [[managedObject objectID] isTemporaryID];
| 归档时间: |
|
| 查看次数: |
5061 次 |
| 最近记录: |