Исключение броска массива - PullRequest
0 голосов
/ 02 ноября 2010

* - [__ NSArrayM count]: сообщение отправлено освобожденному экземпляру 0x5edd5e0

Я получаю исключение такого типа и его сбой в приложении. Код:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{ 

 if(section == 0){
 return ([billDetials count]+ 1);
 }

 int rows = ([billers count] + 1);
  return rows;
}

[количество биллеров] для этого оператора я получаю это исключение ... Здесь billers - это NSMutableArray, имеющий 6 объектов. tableView состоит из 2 разделов.

так что я должен получить количество массивов равным 6, но этого не происходит ....

Ответы [ 2 ]

6 голосов
/ 02 ноября 2010

Похоже, что массив биллеров не сохраняется должным образом. Убедитесь, что это либо сохраняемое свойство, либо что вы сохраняете его правильно при создании этого массива.

Прочитайте и полностью поймите это: http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html%23//apple_ref/doc/uid/10000011i

2 голосов
/ 02 ноября 2010

Похоже, что NSArray 'billers' освобождается до того, как вы вызовете для него метод count.Это может быть связано с автоматическим выпуском или ручным сбросом перед отправкой метода подсчета.

Если вы инициализируете биллеры, используя «alloc» и «init», то вы, вероятно, слишком скоро освободите объект.Если вы инициализируете его с помощью удобного метода или с помощью «autorelease», то объект собирается для мусора слишком рано (вам нужно сохранить его).

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