Что за "вылет"? EXC_BAD_ACCESS
(разыменование указателя, который не указывает на допустимое местоположение)? Или какой-то objc_exception_throw
?
Предполагая, что вы имеете в виду EXC_BAD_ACCESS
...
Это было бы потому, что значение «ch» возвращено из [charsList objectAtIndex : row + section * 26]
не является допустимым объектом.
Точную причину этого вам нужно выяснить самому, но наиболее вероятная причина в том, что вы выпускали объект слишком много раз. Также существует вероятность того, что объект не был допустимым объектом Objective-C, когда он был вставлен в массив NSArray.
Иногда помогает установить NSZombieEnabled (command-option-x, перейдите на вкладку «Аргументы» и добавьте name = NSZombieEnabled и value = 1 в переменные среды), поскольку это немедленно вызовет исключение, если вы попытаетесь использовать освобожденный объект.
-
Несвязанная стилистическая точка: вы выделяет SqlQueries, но не инициализирует его. Если вы выделяете
, всегда, всегда init
. т.е. [[SqlQueries alloc] init]
. Если вас не волнует init
, потому что у вас нет переменных экземпляра, то в любом случае у вас не должно быть alloc
, вместо этого ваши методы должны быть методами класса.
init
. т.е. [[SqlQueries alloc] init]
. Если вас не волнует init
, потому что у вас нет переменных экземпляра, тогда вам в любом случае не должно быть alloc
, вместо этого ваши методы должны быть методами класса. всегда init
. т.е. [[SqlQueries alloc] init]
. Если вас не волнует init
, потому что у вас нет переменных экземпляра, то в любом случае у вас не должно быть alloc
, вместо этого ваши методы должны быть методами класса.