コードにコアデータ・エンティティからいくつかの値を取得する方法
-
20-08-2019 - |
質問
私は私のCoreDataアプリでいくつかの属性を持つエンティティを作成しました。テーブルビューとバインドNSArrayControllerはを想像してみてください。私が作成(および編集)私の実体「インスタンス」の両方を持ちます。私の質問は、私は私のコードにこれらの属性の値を得ることができる方法です。多くの質問がある場合: http://twitter.com/xP_abloする
解決
あなたは何とかNSArrayControllerはへの参照を取得する必要があります。あなたはNIB自分をロードしている場合は、ニブ「ファイルの所有者」として設定されているクラスにIBOutletインスタンスを追加することができます。あなたはペン先をロードするときは、所有者としてNIBの「ファイルの所有者」クラスのインスタンスを提供します。あなたは(すなわち、それはあなたのアプリケーションのMaineMenuペン先/ XIBとココアで自動的にロードされます)NIB自分をロードしていない場合は、ペン先に独自のクラスのインスタンスを作成し、そのインスタンスにIBOutletを追加します。あなたはこのようなあなたのクラスでIBOutletを作成します:
@interface MyClass : NSObject { //of course your class doesn't have to be a direct descendent of NSObject
IBOutlet NSArrayController *arrayController;
}
@property (retain,nonatomic,readwrite) IBOutlet NSArrayController *arrayController;
...
@end
@implementation
@synthesize arrayController;
- (void)dealloc {
[arrayController release];
[super dealloc];
}
@end
NSArrayControllerはにあなたのクラスでIBOutletを接続NSArrayControllerはするとドラッグ(最初のケースでは、ファイルの所有者または上記第2のケースで、あなたのクラスのインスタンスでcontrollクリックします)。マウスを離すと、あなたは、ドラッグソースでIBOutletsのポップアップを取得します。 IBOutletを選択します(上記の例では、例えば「arrayController」)を作成します。
ペン先がロードされているワン(awakeFromNib
はあなたのクラスで呼び出された後、すなわち)、あなたはコンセントを経由してarrayControllerにアクセスすることができます:
NSArray *content = [[self arrayController] arrangedObjects];
、あなたは今、あなたは配列の値を喜ば何ことができます。
他のヒント
私はこの正しいを持っている場合は、あなたがあなたのデータにバインドされているNSArrayControllerはと結合した、テーブルビューを持っています。
簡単な方法:(通常はファイルの所有者)あなたのクラスでIBOutletを作成し、Interface BuilderでNSArrayControllerはこのIBOutletを接続します。その後、この配列から、必要な値を得ることができます。