Я пытаюсь использовать UITableViewController (делегат & dataSource для представления), чтобы отобразить простую таблицу, прочитанную из Plist. Plist содержит NSDictionary, который сам содержит несколько объектов NSDictionary, которые представляют объекты, используемые в моем приложении.EXC_BAD_ACCESS в UITableViewController
Остальная часть кода выглядит примерно так (упрощенный):
- (void)viewDidLoad {
[super viewDidLoad];
[self loadObjectsFromPlist];
}
- (void)loadObjectsFromPlist {
NSString *objectPlistFile = [[NSBundle mainBundle] pathForResource:@"Objects" ofType:@"plist"];
NSDictionary *objectsDictionary = [NSDictionary dictionaryWithContentsOfFile:objectsPlistFile];
objects = [[NSMutableArray alloc] init];
NSEnumerator *objectEnumerator = [objectsDictionary objectEnumerator];
NSDictionary *objectData;
while(objectData = [objectEnumerator nextObject]) {
[objects addObject:[MyObject objectFromDictionary:objectData]];
}
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [objects count];
}
Как я не использую любые разделы I возвращающие 1
в numberOfSectionsInTableView
контроллера.
Метод «MyObject
» присваивает данные, считанные с NSDictionary
, новому объекту. Я тоже пытался сохранить, копировать и т. Д., Но это ничего не изменило.
Я получаю EXC_BAD_ACCESS
в tableView:numberOfRowsInSection
при звонке [objects count]
. Я попытался использовать Инструмент выделения объектов, но я не нашел проблемы. В настоящее время My Plist содержит только данные для одного объекта. Отладчик отображает «1 объект» красного цвета для атрибута objects
, поэтому я думаю, что это связано с проблемой.
Следует отметить, что красный цвет для переменной «1 объект» в отладчике просто означает, что его значение изменилось, когда последнее приложение было активным. (Например, что-то было добавлено или удалено.) –
Ах, ладно ... спасибо за это. Так что это не связано с моей проблемой и делает ее еще более загадочной для меня. – Koraktor
Возможно, это просто ошибка транскрипции, но у вас есть [object addObject: [MyObject ..., и это, вероятно, должно быть [objects addObject ... –