2011-01-29 12 views
0

ツリー構造をモデル化したオブジェクトグラフがあります。私は、ツリーの構造に基づいた修正と計算のために、私の(ユーザの)裁量で、管理されたオブジェクトコンテキストに残っている単一の完全なツリー構造をフェイルします。構造内のオブジェクトは、MOCでの時間の間、アンマネージドオブジェクトへの参照も保持します。コアデータによる管理対象オブジェクトの再フォールトの防止

これは可能ですか?もしそうなら、どのような方法でそれを達成することができますか?

注:これは、Core Dataのわずかな悪用であることを認識しています。

答えて

0

コアデータを直接使用することはできません。メモリ警告があれば、メモリをクリアしようとします。

あなたは常にメモリにそれをしたい場合は、あなたがラッパーオブジェクトを作成することができますが、すなわち

@class MyObject { 
    NSManagedObject *thisIsWhatIRepresent; 

    NSString *someProperty; 
} 

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

@property (nonatomic, copy) NSString *someProperty; 

@end 

あなたはこのを初期化するときは、このオブジェクトのプロパティに、管理オブジェクトからすべてのプロパティをコピーします。管理オブジェクトがフォールトアウトされるかどうかは関係ありません。このオブジェクトにはデータのコピーがあります。

オブジェクトを変更すると、変更されたオブジェクトも変更されることを確認する必要がありますが、いくつか変更して一度に保存するまで待つことはできますか?

注:これは面倒な解決策です。私のアドバイスは、意図しているかどうかにかかわらずCore Dataを使用することです。

+0

私は何か類似していると思っていましたが、同じ結論にすぐに着きました。 "私のアドバイスは、コアデータを意図したものであるかどうかにかかわらず使用することです:)" ...私はこういう少なくとも1つの応答を得られると考えました:-) – Karl

+1

あなたの質問の最後にノートが見えるまで、それは私の答えの全体だっただろう;)私はあなたが何かに関係なく、厄介な解決策で終わるつもりだと思う、申し訳ありません! – deanWombourne

関連する問題