好的,这让我发疯,我有一个我一直在研究的Xcode OSX应用程序。我最近做了一些更改,我在编译时开始收到以下错误:
iModerate Desktop[72478:303] *** Illegal NSTableView data source (<NSView: 0x102535290>).
Must implement numberOfRowsInTableView: and tableView:objectValueForTableColumn:row:
我无法锻炼它的来源,我已经在appDelegate中实现了这两种方法:
- (NSView *)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{
// The return value is typed as (id) because it will return a string in most cases.
id returnValue=nil;
// The column identifier string is the easiest way to identify a table column.
NSString *columnIdentifer = [tableColumn identifier];
// Get the name at the specified row in namesArray
NSString *theName = [[self.twitterClientsController arrangedObjects] objectAtIndex:row];
// Compare each column identifier and set the return value to
// the Person field value appropriate for the column.
if ([columnIdentifer isEqualToString:@"name"]) {
returnValue = theName;
}
return returnValue;
}
和这个
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
return[[self.twitterClientsController arrangedObjects] count];
}
app delegate设置为NSTableViewDelegate
现在额外的奇怪/令人沮丧的事情是,我在xib中没有NSTableView,我做了,但我已将它们全部删除了。我有事件在BBedit中打开了XIB并搜索了NSTableView,并且有100%没有在那里!
所以,请帮助!如果我能解决什么NSView:0x102535290,我可以跟踪它。
非常感谢帮助保存我的理智!
加雷
答案 0 :(得分:1)
我这样解决了:
为tableview手动设置委托和数据源
[self.tableView setDelegate:self];
[self.tableView setDataSource:self];