NSManagedObjectID 中额外的 'p' 从哪里来?

Where does extra 'p' in NSManagedObjectID come from?

我正在形成这样的 NSManagedObjectID

 NSManagedObjectID *objectID = [store newObjectIDForEntity: entityForPlayer 
                                           referenceObject: GKLocalPlayer.localPlayer.playerID];

store 是一个 NSIncrementalStore。在调试器中 GKLocalPlayer.localPlayer.playerID 看起来像 G:12345678objectID 看起来像 <x-coredata://<UUID>/Player/pG:12345678>.

额外的 p(在逐字玩家 ID 之前)从何而来?它显然没有出现在其他实体类型中,这些实体类型也使用 NSStrings 作为参考对象。

有根据的猜测,因为它是一个实现细节:

p的意思是永久的,因为对象已经保存到store中了。即 [objectID isTemporaryID] == NO

如果尚未保存对象,它将是 t。即 [objectID isTemporaryID] == YES