NSManagedObject子类具有模型中未定义的附加属性

3

在Core Data模型中没有定义的情况下,是否可以为NSManagedObject子类定义附加属性?我有一系列不想包含在模型中的额外属性。

我能够成功地将NSManagedObject保存到上下文中,但是当我关闭应用程序然后在再次启动应用程序后运行获取操作时,NSManagedObject包含所有空值...

有什么想法吗?

1个回答

2
如果您想保存这些值,您需要将它们放入您的模型中,否则每次访问这个值时都可以重新创建它。这是一种延迟加载的方式。
- (NSString *)name {
    if (!name) {
        name = ...
    }
    return name;
}

这些是我不想保存的属性。我没有定义getter,因为它们已经被定义为属性。如果创建这些额外的属性可以的话,有什么想法为什么一个fetch返回所有属性(包括在模型中定义的属性)的null值?fetch返回的对象数量是正确的... - avenged
这些属性绝对不是原因。最有可能的是你自己将属性设置为 nil。在设置值的代码周围加上一些 ifNSAssert,再次检查这个问题。别忘了保存上下文。当有返回值时,请检查所有返回值,特别是保存操作。可能是你插入对象、保存空对象、设置一些值,然后下一次保存失败了。 - Matthias Bauch
我刚刚使用通用的NSManagedObject进行了获取测试,而不是我的定义的NSManaged对象子类,所有值似乎都很好...你确定我的类定义与此无关吗? - avenged
你是否曾经用 @synthesize 替换了你的核心数据属性的 @dynamic 访问器? - Matthias Bauch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接