具有未在模型中定义的附加属性的 NSManagedObject 子类
Posted
技术标签:
【中文标题】具有未在模型中定义的附加属性的 NSManagedObject 子类【英文标题】:NSManagedObject subclass with additional properties not defined in model 【发布时间】:2011-05-06 00:25:55 【问题描述】:是否可以为核心数据模型中未定义的 NSManagedObject 子类定义其他属性?我有一系列不想包含在模型中的附加属性。
我可以将 NSManagedObject 保存到上下文中就好了,但是当我关闭应用程序然后在再次启动应用程序后运行 fetch 时,NSManagedObject 包含所有空值...
有什么想法吗?
【问题讨论】:
【参考方案1】:如果您想保存这些值,您必须将它们放入您的模型中,否则您可以在每次访问值时创建它们并且之前没有创建它们。
延迟加载样式。
- (NSString *)name
if (!name)
name = ...
return name;
【讨论】:
这些是我不想保存的属性。我没有定义吸气剂,因为我将它们定义为属性。如果可以创建这些附加属性,那么知道为什么 fetch 会为所有属性(包括模型中定义的属性)返回 null 值吗?从 fetch 返回的对象数量是正确的... 这样的属性绝对不是原因。很可能您已将属性设置为 nil。仔细检查这一点,在您设置值的代码周围添加一些if
s 或 NSAssert
s。不要忘记保存上下文。并在可用时检查所有返回值。特别是对于保存。可能是您插入对象,保存空对象,设置一些值并且下一次保存失败。
我刚刚使用通用 NSManagedObject 而不是我定义的 NSManaged 对象子类进行了 fetch 测试,所有值似乎都很好......你确定我的类定义与此无关吗?
您有没有将核心数据属性的 @dynamic
访问器替换为 @synthesize
?以上是关于具有未在模型中定义的附加属性的 NSManagedObject 子类的主要内容,如果未能解决你的问题,请参考以下文章
分配给@NSManaged public var locks UI
自定义验证属性未在模型上验证 - WebAPI C# 和 JSON