2012-05-22 38 views
1

我想使用NSTableView(這是我的第一次嘗試),但它什麼也沒有顯示。
我創建了一個項目(ARC),我在我的xib中有一個tableview,我將「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

我剛剛刪除了我的項目,用相同的東西創建了一個新的項目,現在它的工作完美。不管怎麼說,還是要謝謝你! –