Можете ли вы дать больше информации? Это может быть что угодно, но, скорее всего, строки указывают на память, где был действительный массив. Как вы создали массив строк?
Например, ваш массив строк или словарь больше не указывают на допустимую память, если вы создали массив строк как объект автоматического освобождения с помощью фабричного метода в другом методе.
Вот еще один вопрос, довольно близкий к тому, что вы описываете:
Принят сигнал EXC_BAD_ACCESS
EDIT:
Итак, глядя на предоставленный вами код, у этих строк есть несколько возможностей:
NSDictionary * dict = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&error];
if (dict) { rows = [dict objectForKey:@"users"]; }
метод deserializeAsDictionary может возвращать либо автоматически выпущенный словарь, либо NULL. так что одна возможность состоит в том, что строки = NULL. при попытке [количество строк] ваша программа потерпит крах. Проверьте и посмотрите, что в ошибке, может дать вам некоторые подсказки.
Это приведет к ошибке, даже если вы явно вернете 2 для numberOfRowsInSection:
, потому что в cellForRowAtIndexPath:
вы все еще пытаетесь получить доступ к строкам, даже если это может быть NULL.
другая возможность заключается в том, как вы определили строки. Я предполагаю, что это свойство в вашем классе. Но там, где у вас есть rows=[dict objectForKey:@"users"];
, строки могут ничего не указывать после завершения метода. У строк по-прежнему будет адрес, где был [dict objectForKey:], но после области действия метода, dict может исчезнуть и все данные, которые идут с ним.
NSDictionary * dict = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&error];
в соответствии с рекомендациями KVC, вы должны ожидать, что dict автоматически высвобождается после окончания метода.
и еще одна возможность, поскольку я не знаю специфики используемого вами класса JSON, заключается в том, что когда вы выпускаете jsonreturn, вы также освобождаете все связанные с ним данные. Таким образом, строки не указывают ни на что.
В данном случае ошибка, похоже, коренится в том, как вы устанавливаете / сохраняете / обращаетесь к строкам.
попробуйте использовать Build-> Build & Analyze в xcode. это может дать вам еще несколько советов. или бросить в кучу NSLog(@"%d",[rows count]);
все кончено. также попробуйте использовать отладчик. он даст вам трассировку вызовов методов, которые приведут к сбоям [количества строк].