2011-02-05 58 views
0

我在NSMutableArray數據,我想在NSTableView來顯示它,但只的cols的數量發生了變化。 NSTableView的使用基於教程here。 FinalImageBrowser是IBOutletNSTableViewNSTableView的不顯示數據

@implementation AppController 

NSMutableArray *listData; 


- (void)awakeFromNib { 
    [FinalImageBrowser setDataSource:self]; 
} 

- (IBAction)StartReconstruction:(id)sender 
{ 
    NSMutableArray *ArrayOfFinals = [[NSMutableArray alloc] init]; //Array of list with final images 
    NSString *FinalPicture; 
    NSString *PicNum; 
    int FromLine = [TextFieldFrom intValue]; //read number of start line 
    int ToLine = [TextFieldTo intValue];  //read number of finish line 
    int RecLine; 

    for (RecLine = FromLine; RecLine < ToLine; RecLine++) //reconstruct from line to line 
    { 
     Start(RecLine); //start reconstruction 
       //Create path of final image 
     FinalPicture = @"FIN/final"; 
     PicNum = [NSString stringWithFormat: @"%d", RecLine]; 
     FinalPicture = [FinalPicture stringByAppendingString:PicNum]; 
     FinalPicture = [FinalPicture stringByAppendingString:@".bmp"]; 
     [ArrayOfFinals addObject:FinalPicture]; // add path to array 

    } 


    listData = [[NSMutableArray alloc] init]; 
    [listData autorelease]; 

    [listData addObjectsFromArray:ArrayOfFinals]; 

    [FinalImageBrowser reloadData]; 

    NSBeep(); //make some noise 

    NSImage *fin = [[NSImage alloc] initWithContentsOfFile:FinalPicture]; 
    [FinalImage setImage:fin]; 

} 


- (int)numberOfRowsInTableView:(NSTableView *)tv { 
    return [listData count]; 
} 

- (id)tableView:(NSTableView *)tv objectValueFromTableColumn:(NSTableColumn *)tableColumn row:(int)row { 
    return (NSString *)[listData objectAtIndex:row]; 
} 

@end 

當StartReconstruction結束cols的數目已經改變了,但它們是空的。當我調試應用程序時,listData中的項目是可行的。

+0

你聽說過「調試」嗎?這是當你在你的程序中的不同位置插入日誌語句,並查看它們是否到達並返回了正確的數據。在你的代碼中試試這個。 – 2011-02-05 23:37:47

回答

0

我猜你忘了FinalImageBrowser插座連接到表視圖。這意味着你的setDataSource:消息是nil,這將離開沒有數據源的表視圖。

你並不需要向其發送郵件無論如何,你可以設置在筆尖的數據源。刪除您awakeFromNib實施和表視圖的dataSource插座連接到IB的數據源對象,還有FinalImageBrowser出口到表視圖(也IB)。