Objective c 填充表格视图

Objective c 填充表格视图,objective-c,cocoa,Objective C,Cocoa,在mac osx 10.7上使用cocoa,我用一些行填充了一个TableView,我有一些困惑 names是包含NSString的NSArray** - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex; { return [names objectAtIndex:rowIndex]; } 我检查了苹

在mac osx 10.7上使用cocoa,我用一些行填充了一个TableView,我有一些困惑

names是包含NSString的NSArray**

- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex;
{
  return [names objectAtIndex:rowIndex];
}
我检查了苹果文档中数据源的协议参考

在上面的函数中,我返回一个NSString*,方法的签名只返回id,而不返回NSString*。文档没有给我任何关于返回类型的线索

 An item in the data source in the specified tableColumn of the view.
我的案例很简单,NSString*很有意义,它确实有效,但我不确定。我想知道,鉴于签名中没有提及,方法文档中也没有提及,这种隐式知识从何而来,即该方法必须返回何种类型的数据:/


有什么建议吗?我来自.Net/android/background那里的文档更有意义,可能是因为它们是强类型语言,

应该返回的对象类型取决于NSTableView中单元格的定义方式。默认情况下,在Interface Builder中创建NSTableView时,这些单元格被定义为NSTextFieldCell,因此可以为这些单元格返回NSString。但是,您可以定义单元格以接受代码中其他类型的对象(例如NSImageCell、NSButtonCell等)