【问题标题】:NSManagedObject subclass with additional properties not defined in model具有未在模型中定义的附加属性的 NSManagedObject 子类
【发布时间】:2011-05-06 00:25:55
【问题描述】:

是否可以为核心数据模型中未定义的 NSManagedObject 子类定义其他属性?我有一系列不想包含在模型中的附加属性。

我可以将 NSManagedObject 保存到上下文中就好了,但是当我关闭应用程序然后在再次启动应用程序后运行 fetch 时,NSManagedObject 包含所有空值...

有什么想法吗?

【问题讨论】:

    标签: iphone core-data nsmanagedobject


    【解决方案1】:

    如果您想保存这些值,您必须将它们放入您的模型中,否则您可以在每次访问值时创建它们并且之前没有创建它们。

    延迟加载样式。

    - (NSString *)name {
        if (!name) {
            name = ...
        }
        return name;
    }
    

    【讨论】:

    • 这些是我不想保存的属性。我没有定义吸气剂,因为我将它们定义为属性。如果可以创建这些附加属性,那么知道为什么 fetch 会为所有属性(包括模型中定义的属性)返回 null 值吗?从 fetch 返回的对象数量是正确的...
    • 这样的属性绝对不是原因。很可能您已将属性设置为 nil。仔细检查这一点,在您设置值的代码周围添加一些 ifs 或 NSAsserts。不要忘记保存上下文。并在可用时检查所有返回值。特别是对于保存。可能是您插入对象,保存空对象,设置一些值并且下一次保存失败。
    • 我刚刚使用通用 NSManagedObject 而不是我定义的 NSManaged 对象子类进行了 fetch 测试,所有值似乎都很好......你确定我的类定义与此无关吗?
    • 您有没有将核心数据属性的 @dynamic 访问器替换为 @synthesize
    猜你喜欢
    • 2014-01-13
    • 2022-11-19
    • 2011-03-01
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多