2011-01-29 125 views
0

我有一个模型树结构的对象图。我希望获取(没有错误)单个完整的树结构让我保留在托管对象上下文中,由我(用户)酌情根据树的结构进行修改和计算。结构中的对象也会在MOC中保持对非托管对象的引用。防止核心数据重新管理被管理对象

这可能吗?如果是这样,那么可以通过什么方式来完成?

注意:我知道这是对Core Data的轻微误用。

回答

0

你不能直接使用核心数据,它会一直尝试清除内存,如果有内存警告。

不过,如果你总是希望它在内存中,你可以创建一个包装对象即

@class MyObject { 
    NSManagedObject *thisIsWhatIRepresent; 

    NSString *someProperty; 
} 

- (id)initWithManagedObject:(NSMagagedObject *)managedObject; 

@property (nonatomic, copy) NSString *someProperty; 

@end 

当你Init这,您复制从管理对象进入此对象的属性的所有属性。那么不管你的被管理对象是否出错 - 这个对象都有数据的副本。

您必须确保对象的任何更改也会更改管理对象,尽管您可以等待,直到您有一些更改并一次全部保存它们。

注意:这是一个混乱的解决方案。我的建议是使用核心数据,因为它是有意的或者根本没有:)

+0

我曾经想过类似的东西,很快就得出了和你一样的结论:它很混乱。 “我的建议是使用核心数据,因为它的打算或根本不:)”我想我会得到至少一个这样的答复:-) – Karl 2011-01-29 22:57:12