Проверьте, какой столбец вас просят заполнить в вашей реализации tableView:objectValueForTableColumn:row:
. Вот почему он проходит мимо колонны! Быстрый пример, поскольку вы, похоже, игнорируете часть «проверьте, какой столбец вас просят заполнить»:
- (id)tableView:(NSTableView *)tableView
objectValueForTableColumn:(NSTableColumn *)column
row:(int)row
{
if ([[column identifier] isEqualToString:@"A"])
return [columnArrayA objectAtIndex:row];
if ([[column identifier] isEqualToString:@"B"])
return [columnArrayB objectAtIndex:row];
return nil;
}