2013-03-30 4 views
2

Я использую -insertObject:atIndex:, чтобы добавить некоторые экземпляры пользовательского класса с именем DecryptedItem в NSMutableArray. DecryptedItem реализует свои собственные методы -hash и -isEqual:, хотя, насколько я знаю, это не имеет значения, когда объекты добавляются в массив.NSMutableArray содержит нулевой указатель

После вставки объекта с индексом 0, еще один с индексом 0 и еще один в 1, я получаю следующее очень странное поведение: массив отображается в виде массива из 3 элементов в окне отладки и вызывает -description на массиве показано, что он содержит три разных объекта. Однако просмотр массива в отладчике показывает, что один объект равен нулю! Я заметил это, когда искал конкретный объект, используя -indexOfObject:inSortedRange:options:usingComparator:, который вернул NSNotFound.

Strange NSMutableArray behavior

+0

Как вы используете сохранение данных в NSMutableArray? Код? –

+0

Вставка низа должна приводить к краху приложения во время вставки, если вы не извлекаете эти данные из метода, который возвращает объект NSNull, когда объект равен нулю. например объект разбирается из строки json. – lukya

+0

Показать код, пожалуйста. –

ответ

0

Оказывается, что массив не отсортирован правильно, и поэтому -indexOfObject:inSortedRange:options:usingComparator: не работает должным образом. Теперь все кажется прекрасным. Полагаю, на самом деле это был просто отладчик, изворотливый.

Смежные вопросы