2012-05-22 4 views
1

Я пытаюсь использовать NSTableView (это моя первая попытка), но ничего не показывает.
Я создал проект (ARC), у меня есть табличное представление в моем xib, я перетащил «Data Source» и «Delegate» в свой объект AppDelegate.
У меня есть следующий код на AppDelegate.h:
Простая попытка NSTableView и ничего не показывать

#import <Cocoa/Cocoa.h> 

@interface AppDelegate : NSObject <NSApplicationDelegate, NSTableViewDelegate, NSTableViewDataSource>{ 
    NSMutableArray* array; 
} 

@property (assign) IBOutlet NSWindow *window; 
@property (assign) IBOutlet NSTableView *tableView; 

@end 

И .m:

#import "AppDelegate.h" 

@implementation AppDelegate 

@synthesize window = _window; 
@synthesize tableView = _tableView; 

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
    [array addObject:@"1"]; 
    [array addObject:@"2"]; 
    [array addObject:@"3"]; 
    [array addObject:@"4"]; 
    [_tableView reloadData]; 
} 

- (id)tableView:(NSTableView *) aTableView objectValueForTableColumn:(NSTableColumn *) aTableColumn row:(NSInteger) rowIndex{ 
    return [array objectAtIndex:rowIndex]; 
} 

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

@end 


Что может быть ошибка? Спасибо

ответ

4

Предполагая, что код, который вы опубликовали, завершен, проблема заключается в том, что вы никогда не инициализируете переменную экземпляра array. Добавьте следующую строку в верхней части -applicationDidFinishLaunching::

array = [NSMutableArray array]; 
+1

я сделал это, и это все еще не показывает ничего внутри Tableview –

+1

Это невозможно для людей на переполнение стека тщательно отладки кода удаленно. Единственное, что мы можем сделать, это взять предоставленную вами информацию и попытаться выявить очевидные проблемы и предложить места для поиска. Мое предложение состоит в том, чтобы использовать отладчик, чтобы выполнить свой код и найти, где он не ведет себя так, как вы ожидаете. Убедившись, что вызов '-tableView: objectValueForTableColumn:' вызывается, и что 'array' не равен нулю или пуст, кажется хорошим началом. –

+1

Я просто удалил свой проект, создал новый с теми же вещами, и теперь он отлично работает. Спасибо, в любом случае! –

Смежные вопросы