kro*_*oss 7 core-data objective-c ios
当我在lldb中打印核心数据对象的对象描述时,我有时会得到以下对象描述:
(lldb)po my_challenge_object(entity:Challenge; id:0x170433460 < x-coredata:/// Challenge/t52BD558C-A8FE-4064-A8BE-217A837521E52 >; data:{...})
如果我以后打印相同的对象,我有时会看到'x-coredata'路径发生变化.
(entity:Challenge; id:0x170433460 < x-coredata:// 50232AB5-7372-4628-9F00-51BDB1A5C96D/Challenge/t52BD558C-A8FE-4064-A8BE-217A837521E52 >; data:{...})
我的问题是,这条路是什么意思,为什么会改变?在这种情况下,添加'50232AB5-7372-4628-9F00-51BDB1A5C96D'会告诉我有关我的对象的内容是什么?
ImH*_*its 13
首次打印对象时,它尚未分配给持久性存储:
(lldb) po my_challenge_object
<Challenge: 0x1700da1d0> (entity: Challenge; id: 0x170433460 <x-coredata:///Challenge/t52BD558C-A8FE-4064-A8BE-217A837521E52> ; data: {...})
Run Code Online (Sandbox Code Playgroud)
这就是托管对象ID中冒号后面有三个斜杠的原因.
在第二个实例中,它已被分配给具有标识符"50232AB5-7372-4628-9F00-51BDB1A5C96D"的持久存储.
<Challenge: 0x1700da1d0> (entity: Challenge; id: 0x170433460 <**x-coredata://50232AB5-7372-4628-9F00-51BDB1A5C96D/Challenge/t52BD558C-A8FE-4064-A8BE-217A837521E52**> ; data: {...})
Run Code Online (Sandbox Code Playgroud)
托管对象ID URI的结构通常如下:
x-coredata:// [存储UUID]/[实体名称]/[主键]
注意: [Primary Key]部分是特定于商店的,可以引用sqlite行的pk或XML或Binary存储中的某个其他标识符.
商店的UUID可以从商店的元数据字典中获得,或者通过询问NSPersistentStore的实例来获取其标识符:
NSLog(@"Store Identifier: %@", [store identifier]);
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1950 次  |  
        
|   最近记录:  |