NSMutableArray против NSArray - PullRequest
0 голосов
/ 05 июля 2011

Я создал скрипт, который загружает XML с сервера, анализирует его и сохраняет его в NSMutableArray

[kategorienArray addObject:catName];

catName ist String, если я NSLog Array, все работает нормально.

После этого я создал tebleview и перезагрузил Data

[kategorienAuswahl reloadData];

KategorienAuswahl - это мой TableView

, и теперь я получаю Проблемы

, если яИспользуйте "обычный" массив

NSArray *array = [[NSArray alloc] initWithObjects:@"iPhone", @"iPod", @"iPad",nil];
    self.listData = array;
    [array release];

, будет отображаться, но если я использую

cell.textLabel.text = [kategorienArray objectAtIndex:row]; 

, я получаю EXC_BAD_ACCESS

, вместо этого он отлично работает с

cell.textLabel.text = [listData objectAtIndex:row]; 

Я добавляю nwo

kategorienArray = [[NSMutableArray alloc] init];
    kategorienArray = [NSMutableArray arrayWithCapacity:10];

, но теперь я не получаю данных в моем Tableview

Ответы [ 2 ]

2 голосов
/ 05 июля 2011

Возможно, вы не инициализировали kategorienArray. У вас есть kategorienArray = [[NSMutableArray alloc] init]; в вашем коде? Вы должны были сделать это, прежде чем добавлять к нему объекты и затем получать к ним доступ.

Кроме того, убедитесь, что ваш массив хранится в том месте, где он был создан, чтобы система не возвращала свою память, прежде чем вы получите доступ к ее элементам. Чтобы убедиться, что все идет хорошо, я объявляю изменяемый массив как свойство. В файле .h вашего viewcontroller поместите

@property (nonatomic, retain) NSMutableArray *kategorienArray;

и в вашем .m файле положите

@synthesize kategorienArray;

вверху и затем

self.kategorienArray = [NSMutableArray array];

в viewDidLoad или где-то еще, прежде чем добавлять к нему элементы.

0 голосов
/ 05 июля 2011

Возможно, проблема в том, что 'kategorienArray' был (авто) выпущен. Является ли kategorienArray иваром? Проверьте, правильно ли вы сохранили его при создании массива (особенно если вы создали его методом класса).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...