2011-01-29 136 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

相關問題