iOS CoreData 中 objectID 的不变性

关于 CoreData的 objectID 官方文档有这样的表述:新建的Object还没保存到持久化存储上,那么它的objectID是临时id,而保存之后,就是持久化的id,不会再变化了。

那么,我想做的实验是,新建一个对象,再保存,再查看这个对象的objectID,看看系统会不会自动把这个新对象的 临时id 更改为 持久化的id。

        var person =   NSEntityDescription.insertNewObjectForEntityForName("Person", inManagedObjectContext: self.managedObjectContext);
        print("=====================\(person.objectID)========");
        
        self.saveContext()
        
        print("=====================\(person.objectID)========");

输出如下:

=====================0x7fea1b537980 <x-coredata:///Person/t557B4303-DE94-4609-AC46-CD568620D7DA2>========
=====================0xd000000000040000 <x-coredata://AABFE039-D2AB-48D1-99C5-EC98DEB8DCE9/Person/p1>========

可见,是可以自动更新objectID的。而且 tempory 的 id 和 持久化的id写法很不同,可以很明显的区分开来。

 

posted @ 2016-09-01 17:49  幻化成疯  阅读(463)  评论(0)    收藏  举报