/ / *** Незаконен източник на данни за NSTableView (<NSView: 0x102535290>). Трябва да внедрите numberOfRowsInTableView: и tableView: objectValueForTableColumn: row: - aim-c, xcode, macos, nstableview

*** Незаконният източник на данни NSTableView (<NSView: 0x102535290>). Трябва да въведе numberOfRowsInTableView: и tableView: objectValueForTableColumn: ред: - цел-c, xcode, macos, nstableview

Добре, това ме подлудява, имам 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];
}

И делегатът на приложението е зададен като NSTableViewDelegate

Сега допълнителното странно / смущаващо нещо е, че азнямам NSTableView в xib, аз го направих, но всички съм ги изтрил. Имам събитие отворих XIB в BBedit и потърсих NSTableView и там има 100% не един!

Така че, помогнете моля! Ако можех да разбера какво е NSView: 0x102535290, може би бих могъл да го проследя.

Помощ за спасяването на здравия ми разум много оценявам!

Гарет

Отговори:

1 за отговор № 1

при мен е решено по този начин:

  • премахнете източника на данни и делегиращите връзки от interfaceBuilder.
  • направете свойство на изхода за вашия изглед на таблица във .h файла
  • във .m файла в applicationDidFinishLaunching метод задайте ръчно делегата и източника на данни за вашия преглед на таблица

    [self.tableView setDelegate:self];
    [self.tableView setDataSource:self];