【问题标题】:Preventing managed objects from being re-faulted by Core Data防止托管对象被 Core Data 再次出错
【发布时间】:2011-01-29 07:06:43
【问题描述】:

我有一个模拟树结构的对象图。我希望获取(没有错误)一个完整的树结构并由我(用户)自行决定将其保留在托管对象上下文中,以便根据树的结构进行修改和计算。结构中的对象还将在它们在 MOC 中的时间段内保持对非托管对象的引用。

这可能吗?如果可以,可以通过哪些方式实现?

注意:我意识到这是对 Core Data 的轻微滥用。

【问题讨论】:

    标签: iphone ios core-data


    【解决方案1】:

    你不能直接使用Core Data来做,如果出现内存警告,它总是会尝试清除内存。

    但是,如果您总是希望它在内存中,您可以创建一个包装器对象,即

    @class MyObject {
      NSManagedObject *thisIsWhatIRepresent;
    
      NSString *someProperty;
    }
    
    - (id)initWithManagedObject:(NSMagagedObject *)managedObject;
    
    @property (nonatomic, copy) NSString *someProperty;
    
    @end
    

    当你初始化它时,你将所有属性从托管对象复制到这个对象的属性中。那么你的托管对象是否出现故障也没关系 - 这个对象有数据的副本。

    您必须确保对对象的任何更改也会更改托管对象,尽管您可以等到有一些更改并一次保存它们?

    注意:这是一个混乱的解决方案。我的建议是按预期使用 Core Data 或根本不使用 :)

    【讨论】:

    • 我想到了类似的东西,很快就得出了和你一样的结论:很乱。 “我的建议是按预期使用 Core Data 或根本不使用 :)”...我想我会得到至少一个这样的回应 :-)
    • 直到我看到问题底部的注释,这将是我的全部答案;)我认为无论如何你都会得到一个混乱的解决方案,抱歉!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    相关资源
    最近更新 更多