пожалуйста, прости меня за то, что нашли время, но я потратил много времени, и перепробовал все, что было в моей голове, и что я нашел в интернете:/NSTableView reloadData - индекс за исключением ограничивающей
Проблема в том о перезапуске NSTableView после добавления 1 записи в свой массив. Мое приложение начинается с каталога сканирования для файлов, добавляя их имена и измененные даты в NSMuttableArray из NSDictionaries. Затем загрузите эту информацию в NSTableView, и все будет хорошо. Но когда I'am создания нового файла и пытается перезагрузить NStableViev I'am получаю это:
[__NSArrayM objectAtIndex:]: index 5 beyond bounds [0 .. 4]
Теперь я хочу показать некоторый код, что I'am пытается сделать.
Так вот как мой стол получать данные
-(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;
}
и вот то, что, как i'am пытается перезагрузить данные при создании нового файла:
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
Также, пожалуйста, разместите свой фактический код. 'return cell view;' не будет компилироваться. – trojanfoe
@trojanfoe для просмотра моей проблемы, '[TxtFileObj GetFilesList];' является методом экземпляра. Это мой фактический код, и он отлично компилируется. – MartyMcFly