NSCoder - 仅调用对象实例化

时间:2013-12-04 23:17:57

标签: core-data nscoding

我已经设置了一个符合NSCoding的类,并且在我第一次创建对象时按预期工作。它与this

的设置基本相同

我遇到的问题是不保留更改时对象的属性。

例如,

Foo已创建并具有名为name的属性。

Foo.name = @"bar"

我可以对对象进行编码/解码,并保留名称栏。

如果我尝试改变

Foo.name = @"newName"

不再调用encode方法,因此foo.name保持为@“bar” (我在编码方法中有一个日志状态)

此外,

我正在使用核心数据对象,它具有指向foo对象的可转换属性。

由于

1 个答案:

答案 0 :(得分:1)

要“保存”对象,您必须调用编码方法,例如将其写入磁盘或将其发送到输出流。

但是,由于您使用Core Data来保留对象,因此您必须调用

[managedObjectContext save:&error];

在更改后保留对象。

话虽如此,我认为拥有一个指向保留字符串属性的自定义类的可转换属性并不是很有意义。相反,您应该考虑更合适的数据结构,因此您只需要使用已经内置到Core Data中的标准数据类型无法持久化的非标准数据类型的可转换属性。

相关问题