代码之家  ›  专栏  ›  技术社区  ›  Drux

NSManagedObjectID中的额外“p”来自何处?

  •  0
  • Drux  · 技术社区  · 10 年前

    我正在组建一个 NSManagedObjectID 这样地:

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

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

    额外的在哪里 p (在逐字播放器ID之前)来自?它显然不会显示在其他实体类型中 NSString s作为参考对象。

    1 回复  |  直到 10 年前
        1
  •  0
  •   Matthias Bauch    10 年前

    受过教育的猜测,因为这是一个实现细节:

    这个 p 表示永久性,因为对象已保存到存储中。即 [objectID isTemporaryID] == NO .

    这将是一个 t 如果对象尚未保存。即 [objectID isTemporaryID] == YES .

    推荐文章