Маловероятно, что сбой происходит из-за инициализации UITextView.Я на самом деле подозреваю строку над ним в цикле for ().У вас очень противоречивое управление именами и памятью, и это опасно для ObjC.
Во-первых, присвойте своим переменным имена, соответствующие им.category_type
звучит как enum, но похоже, что NSMutableArray
.Этот вид именования убьет вас в ObjC;Вы должны следить за тем, что происходит, потому что компилятор часто не улавливает несоответствия типов.У вас должно быть имя типа categoryTypes
.
Далее, вы не должны получать прямой доступ к своим иварам.Всегда используйте аксессоры.Всегда.(За исключением, возможно, в dealloc
; там есть противоречие.) Это # 1 способ избежать EXC_BAD_ACCESS.Вы явно не сохраняете что-то правильно.Аксессоры защищают от этого.
Вы действительно хотите добавить _appDelegate.genericArray
к genericArray
?Или вы действительно хотите сделать genericArray
копию _appDelegate.genericArray
?Или вы просто хотели, чтобы genericArray
указывал на _appDelegate.genericArray
?Если вам нужна копия, просто скопируйте ее:
self.genericArray = [NSMutableArray arrayWithArray:self.appDelegate.genericArray];
Я знаю, что все это звучит как «просто стиль», но непротиворечивый стиль абсолютно важен для стабильного ObjC.Вы видите виды раздражающих сбоев, которые вы получаете в противном случае.
Вы также должны нажать «Cmd-Shift-A» и позволить статическому анализатору искать ошибки для вас.