2011-05-21 5 views
1

私はxcdatamodelを使用して、CoreDataデータエンティティに基づいていくつかのクラスを定義しています。これは素晴らしい仕事と私はアップル社の例に基づいてそれらを取得することができている:コアデータからデータを取得する

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdFetching.html

私はしかし後だ何を、別のクラスにフェッチメソッドをパッケージ化するための方法ですが、私はのカップルを持っています質問... 例

MyDataAccessClass * mdac = [[MyDataAccessClass alloc] init]; myFetchedData = [mdac fetchData];

Q1。私はこれを行う場合、それはNSManagedObjectContextがクラスで定義されていることを確認ですか?またはそれはまだ私のView Controllerで参照される必要があり、私の 'MyDataAccessClass'に渡されますか? Q2。データモデル内のエンティティのXCodeで作成されたクラスにデータ取得メソッドを設定することは意味があります。私がこれをやろうとするたびに、XCodeによって自動的に生成されるので、これらのクラスは自動的に更新されますが、定義したメソッドはすべて上書きされます。

ありがとうございます!

+0

エンティティにメソッドを追加する場合は、別のファイルで定義されたカテゴリでメソッドを追加して、Q2の問題を回避できます – albertamg

答えて

1

別のクラスに新しいNSManagedObjectContextを作成することができます.AppDelegateで既に作成されているので、問題があるかどうかはわかりません。私がしたことはQ1の第2部で提案したものでした。ここでは、NSManageObjectContextを別のメソッドクラスに渡したので、私は次のようなことができます:

myFetchedData = [mdac fetchData:currentNSManagedObjectContext];

関連する問題