Откуда берется дополнительный "p" в 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>,

Откуда берется дополнительный p (до стенографического идентификатора игрока) откуда? По-видимому, он не отображается с другими типами сущностей, которые также используют NSStringв качестве эталонных объектов.

1 ответ

Решение

Обоснованное предположение, потому что это деталь реализации:

p означает что-то вроде постоянного, потому что объект был сохранен в магазине. т.е. [objectID isTemporaryID] == NO,

Это будет t если объекты еще не были сохранены. т.е. [objectID isTemporaryID] == YES,

Другие вопросы по тегам