3

我知道表格源需要一个数据源来保存表格视图将显示的数据。假设我要让我的 AppController 成为我的 tableview 的数据源,并且我在 interface builder 中建立连接。我的问题是因为我的实际数据将存储在一个数组中,我们称之为 myArray,当我在代码中设置数据源时我应该这样做

 [tableView setDataSource:myArray]; or this [tableView setDataSource:self];

我对此感到困惑。如果我没记错的话,使用关键字“self”设置数据源会将其设置为 AppController。

4

1 回答 1

7

表视图数据源必须符合NSTableViewDataSource协议(NSTableDataSource在 10.6 之前调用)。

NSArray不符合这个协议,所以不能作为数据源使用。

您需要在您的对象中实现所需的协议方法AppController并将您的对象指定AppController为表的数据源。

- (void)applicationDidFinishLaunching:(NSNotification*)notification
{
    [tableView setDataSource:self];
}

- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView
{
    return [myArray count];
}

- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
{
    return [myArray objectAtIndex:rowIndex];   
}
于 2010-04-21T23:48:16.080 回答