3
我试图以编程方式设置NSArrayController
以使用Core Data。如何设置核心数据的NSArrayController?
我知道我的Core Data存储具有内容,因为我可以通过托管对象上下文手动检索对象。我将NSArrayController
连接到相同的受管对象上下文,然后将NSTableColumn
的值参数绑定到NSArrayController
。我问NSArrayController
取回,但它返回一个空数组。
关于我可能做错什么的建议?
接口
@interface MTTableViewController : NSObject <NSTableViewDelegate, NSTableViewDataSource>
{
NSMutableArray *tableData;
MTTableCell *tableCell;
IBOutlet NSTableColumn *tableColumn;
NSArrayController *dataController;
}
实施
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
{
dataController = [[NSArrayController alloc] init];
[dataController setManagedObjectContext:[[NSApp delegate] managedObjectContext]];
[dataController setEntityName:@"Track"];
[dataController setAutomaticallyPreparesContent:YES];
[dataController fetch:self];
NSArray *content = [dataController arrangedObjects];
NSLog(@"Count :%i", (int)[content count]); //Outputs 0
tableCell = [[MTTableCell alloc] initTextCell:@""];
[tableColumn setDataCell:tableCell];
}
return self;
}
肯定你的管理对象上下文中初始化该代理在您将其分配给您的datacontroller init方法时。 –
我从委托检查了托管对象上下文的调用,它不是零。还有其他建议吗? – David
尝试[dataController fetch:self];安装后。不应该,但... –