Трассировка стека поможет вам точно определить, что вызывает isEqualToString:
. К сожалению, он не дает вам никаких символов, поэтому вам придется немного покопаться.
В методах Objective-C есть два скрытых параметра, которые всегда передаются в качестве первых двух аргументов: self
, указатель на объект, на который отправляется сообщение, и _cmd
, указатель на Строка C, содержащая имя отправляемого сообщения. Изучение аргументов _cmd
в кадрах стека поможет вам отладить проблему.
Первое, что вы хотите сделать, это установить точку останова непосредственно перед выдачей исключения. Откройте консоль отладчика (Cmd + Shift + R) и добавьте точку останова к функции в верхней части трассировки стека, набрав:
break 2438463755
Теперь запустите ваше приложение, и отладчик должен выйти из строя прямо перед тем, как выдать исключение. Это также должно дать вам полный символический след; если нет, вам придется пройтись по стеку самостоятельно. Вы можете пройтись по стопке и распечатать значение различных параметров _cmd
.