it-roy-ru.com

- [__ NSPlaceholderArray initWithObjects: count:]: попытка вставить нулевой объект из объектов [0] '

Я работаю с UITableview. Я отображаю изображение, название, дату и имя местоположения в ячейке табличного представления. Когда я щелкаю по ячейке табличного представления, она переходит к подробному представлению. В непрерывном представлении таблицы к подробному представлению и наоборот. После некоторых переходов мое приложение получало сбой при нажатии на мою ячейку UITableview.

15
khaleel

NSArray предназначен для хранения объектов для каждого элемента - nil никогда не является допустимым значением для любого индекса NSArray.

Ошибка предполагает, что ваша программа создает массив с ненулевой длиной, и что первый элемент - ноль.


Предчувствие: Вы объявили литерал, что-то эквивалентное:

NSNumber * n = nil;
NSArray * a = @[n]; // << runtime error creating this array

Конечно, ваша программа может вместо этого вызывать -[NSArray initWithObjects:count:] напрямую.

27
justin

1- Определите безопасный макрос #define $safeArgs(...) [NSOrderedSet orderedSetWithObjects:__VA_ARGS__, nil]

2- Затем используйте NSArray *array = [$safeArgs("objectsToSanitize") allObjects];

Это будет использовать набор для очистки ваших нулевых объектов, а затем поместить их в массив

0
Bruno Garelli