我正在组建一个 NSManagedObjectID 这样地:
NSManagedObjectID
NSManagedObjectID *objectID = [store newObjectIDForEntity: entityForPlayer referenceObject: GKLocalPlayer.localPlayer.playerID];
store 是一个 NSIncrementalStore 。在调试器中 GKLocalPlayer.localPlayer.playerID 看起来像 G:12345678 但是 objectID 看起来像 <x-coredata://<UUID>/Player/pG:12345678> .
store
NSIncrementalStore
GKLocalPlayer.localPlayer.playerID
G:12345678
objectID
<x-coredata://<UUID>/Player/pG:12345678>
额外的在哪里 p (在逐字播放器ID之前)来自?它显然不会显示在其他实体类型中 NSString s作为参考对象。
p
NSString
受过教育的猜测,因为这是一个实现细节:
这个 p 表示永久性,因为对象已保存到存储中。即 [objectID isTemporaryID] == NO .
[objectID isTemporaryID] == NO
这将是一个 t 如果对象尚未保存。即 [objectID isTemporaryID] == YES .
t
[objectID isTemporaryID] == YES