私は働くためにNSArrayにアクセスする必要があるいくつかのコードを持っています。私はコアデータで使用しているNSArrayを持っており、その中にデータを持ちますが、NSArrayControllerをNSArrayにアクセスさせる方法が不明です。Core DataでNSArrayとNSArrayControllerを使用するにはどうすればよいですか?
ヘッダーファイルで次のように宣言することはできません。NSArray *objectArray;
アクセス方法や方法がわからないためです。 Core Dataで使用しているNSArrayにどのくらい正確にアクセスできますか?
私のヘッダーファイル:
#import <Cocoa/Cocoa.h>
@interface MyOutlineView : NSOutlineView {
NSArrayController* objectArray;
}
@end
私の実装ファイル:
#import "MyOutlineView.h"
@implementation MyOutlineView
- (void) outlineView: (NSOutlineView *) aView
willDisplayCell: (id) aCell
forTableColumn: (NSTableColumn *)aColumn
item: (id) anItem
{
id rootObj = anItem;
unsigned row = [aView rowForItem:anItem];
[aCell setDrawsBackground: YES];
while ([aView levelForRow:row] != 0) {
row --;
rootObj = [aView itemAtRow:row];
}
// The colours here are foul and ugly. Use something else, for
// God's sake!
if([objectArray indexOfObject:rootObj] % 2)
[aCell setBackgroundColor: [NSColor yellowColor]];
else
[aCell setBackgroundColor: [NSColor blueColor]];
}
@end
どのようにコアデータでNSArrayを使用していますか?コアデータオブジェクトをNSArrayオブジェクトにフェッチしますか? – diederikh
アウトラインビューにあるテキストを格納するためにNSArrayを使用しています。アウトラインビューのルートオブジェクトに異なる背景色を付けるいくつかのコードがあります。しかし、どのオブジェクトがルートオブジェクトであるかを知るためにNSArrayにアクセスする必要があります。 – Joshua
NSArrayは現在どのオブジェクトに保持されていますか? NSArrayを制御するNib内にNSArrayControllerがありますか?これは、他のオブジェクトがNSArrayControllerにバインドするこの方法で意味をなさないかもしれません。 – diederikh