0
請原諒我把你的時間,但我花了大量的時間和嘗試,在我心中的一切,而我在互聯網上找到:/NSTableView的reloadData - 指數超越界限的異常
的問題是關於重裝在向其數組中添加1條記錄後的NSTableView。我的應用程序從掃描文件目錄開始,將它們的名稱和修改日期添加到NSDictionaries的NSMuttableArray中。然後將這些信息加載到NSTableView,並且一切正常。 但是當我'創建新的文件,並試圖重新加載NStableViev我'得到這個:
[__NSArrayM objectAtIndex:]: index 5 beyond bounds [0 .. 4]
現在我想呈現什麼我'嘗試做一些代碼。
因此,這裏是我如何表中獲取數據
-(NSInteger)numberOfRowsInTableView:(NSTableView *)tableView{
NSLog(@"--------->%ld",(long)filesCount);
return filesCount;
}
-(NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn
row:(NSInteger)row {
NSDictionary *flag = FilesArray[row];
NSString *identifier = [tableColumn identifier];
if ([identifier isEqualToString:@"filename"]){
NSTableCellView *cellview = [tableView makeViewWithIdentifier:@"filename" owner:self];
[cellview.textField setStringValue:flag[@"name"]];
return cellview;
}else if ([identifier isEqualToString:@"filedate"]){
NSTableCellView *cellview = [tableView makeViewWithIdentifier:@"filedate" owner:self];
[cellview.textField setStringValue:flag[@"date"]];
return cellview;
}
return nil;
}
這裏什麼怎麼我'嘗試創建一個新文件時重新加載數據:
if([identifier isEqualToString:@"newFileModalDone"]){
NSString *newFileName = [self fileNameModalDone];
//creating new file
[TxtFileObj WriteToFile:[newFileName stringByAppendingString:@".txt"] :nil];
//rescaning directory
[TxtFileObj GetFilesList];
FilesArray = [TxtFileObj GetFileArray];
//updating files count
filesCount = [FilesArray count];
[FilesListTable reloadData];
}
我試圖觀看調試多時間和它看起來像例外來自
NSDictionary *flag = FilesArray[row];
所以我在想錯誤的數組大小a創造新電影,但我檢查了很多次,一切都很好。
請幫我找出我做錯了什麼,對不起,如果問題很明顯我對Objective C和COCOA很新。
謝謝你的幫忙!
我不明白你的代碼。是'[TxtFileObj GetFilesList];'類方法嗎?這看起來並不正確。 – trojanfoe
也請發佈您的實際代碼。 '返回單元格視圖;'不會編譯。 – trojanfoe
@trojanfoe ty看看我的問題,'[TxtFileObj GetFilesList];'是一個實例方法。這是我的實際代碼,它編譯正常。 – MartyMcFly