2

iPhone アプリに Core Data モデルを使用しています。ManagedObjectContext の外部でエンティティをインスタンス化または使用する方法を探していました。(これは行うべきではありません、私は知っています、それを行わない方法をもっと探していますが、とにかく利益を得ます)。

私の課題は、ユーザーが「Persons」を検索できるビューがあり、すべての検索結果が解析されて Person managedObject に入れられ、リストに表示されることです。ユーザーがリストから Person をクリックした場合にのみ、Person エンティティをストアに永続化する必要がありますが、これには他のすべての結果を削除する必要があるため、目的の結果と共に永続化されません。また、私の知る限り、ユーザーがアプリを終了することを決定した場合、ストアは永続化され、現在のすべての検索結果が実際のユーザー データと混合される可能性があります!

検索リストに使用できる TempPerson NSObject を持つ方法はありますか? ただし、temp オブジェクトから 45 個の属性を手動で取得して、managedObject に手動で設定する必要はありません。

並べ替え: NSManagedObject aPersonCorrectlyReturnedFromTheStore = (NSManagedObject *)tempPersonOfJustTypeNSObject

まだ永続化されていないオブジェクトの元に戻す/やり直しやその他のものを容易にするために一時ストアを構築するAppleのサンプルコードを見てきました。これは、私の状況ではやり過ぎだと思います。ユーザーが保持する Person を選択するまで、検索結果を表示する必要があります。

私のコアデータ語彙がまだ十分に大きくないように感じて、私が何をしようとしているのかが明確になることを願っています:)

提案をありがとう。

4

2 に答える 2

4

各一時的な人物オブジェクトを NSDictionary または NSMutableDictionary として作成できます。次に、新しい Person 管理オブジェクトを作成し、NSManagedObject インスタンスが KVC に準拠し、setValuesForKeysWithDictionary: を使用するという事実を使用できます。

于 2009-11-16T04:57:44.753 に答える
3

挿入された新しい管理対象オブジェクトは、管理対象オブジェクトコンテキストにsave:メッセージを送信するまで実際には保持されません。
コレクション(セットまたは配列)でそれらを追跡します-何らかの方法で検索結果を表示しているので、おそらくすでにこれを行っています。次に、ユーザーが選択したものを除くすべてを削除(deleteObject:)します。
削除された管理対象オブジェクトは保存されません。

于 2009-11-16T08:34:49.810 に答える