Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 首次使用不同对象ID的核心数据_Ios_Core Data - Fatal编程技术网

Ios 首次使用不同对象ID的核心数据

Ios 首次使用不同对象ID的核心数据,ios,core-data,Ios,Core Data,我使用实体的对象ID来唯一标识本地通知并修改它们。我注意到,第一次保存实体时,它有以下对象ID: <x-coredata:///Task/tE1C5A230-A419-42D5-AF78-3327A09D13BD2> <x-coredata://D6703834-ECB4-487B-84F8-330A215E16B7/Task/p13> 所以我不能修改通知,因为实体的对象ID不同。有趣的是,每当我访问该实体时,对象ID与上一个保持相同 所以我这里的问题是为什么核心数据

我使用实体的对象ID来唯一标识本地通知并修改它们。我注意到,第一次保存实体时,它有以下
对象ID

<x-coredata:///Task/tE1C5A230-A419-42D5-AF78-3327A09D13BD2>
<x-coredata://D6703834-ECB4-487B-84F8-330A215E16B7/Task/p13>
所以我不能修改通知,因为实体的
对象ID
不同。有趣的是,每当我访问该实体时,
对象ID
与上一个保持相同

所以我这里的问题是为什么核心数据在第一次创建实体时显示不同的对象ID?在多次打开应用程序后尝试访问实体时,对象ID(与第一个不同)保持不变。我很想知道为什么会这样

请注意:
我知道网上有很多帖子指出使用对象ID不是一种可靠的方法。我仍然想知道显示两个id的原因。

第一个OID是临时OID-临时id表示尚未保存的对象。第二个id为永久id,保存后分配给生产任务单:

所以


第一个OID是临时OID—临时id表示尚未保存的对象。第二个id为永久id,保存后分配给生产任务单:

所以


这也是我的猜测。我想这就是原因。谢谢。这也是我的猜测。我想这就是原因。谢谢
var objectID = object.objectID
if objectID.temporaryID {
    object.managedObjectContext.save() //try do catch left out
}
objectID = object.objectID
assert(objectID.temporaryID == false)