2012-03-15 3 views
7

У меня ошибка NSRangeException, которая не возникает постоянно (особенно когда я отлаживаю). Это происходит случайно, и я не могу понять, откуда он. У меня много манипуляций с массивами, поэтому его трудно устранить так.Обнаружение источника nsrangeexception

Мой вопрос, могу ли я получить подсказку, например, класс и номер строки из вывода отладчика, например, какие числа 12109 и 707 ?:

2012-03-15 09:25:15.303 appname[12109:707] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 2 beyond bounds [0 .. 0]' 

Все указатели оценили.

Edit: Оставшаяся часть журнала:

*** First throw call stack: 
(0x33ff38bf 0x342431e5 0x33f4b275 0x1702d 0x37662331 0x3761b2b3 0x33f4d435 0x373b79eb 0x373b79a7 0x373b7985 0x373b76f5 0x3744de55 0x374e3e45 0x373aa99b 0x33fc7b4b 0x33fc5d87 0x33fc60e1 0x33f494dd 0x33f493a5 0x307cdfcd 0x373ca743 0x2325 0x22e4) 
terminate called throwing an exception 

ответ

50

добавить исключение точки останова. Это остановится на линии, которая вызывает исключение.

В навигаторе точек останова щелкните по плюсу в левом нижнем углу, выберите точку останова исключения и все исключения. Вы должны иметь это во всех проектах на самом деле, это бесценно. Хотя у нас было бы гораздо меньше вопросов!

+0

Это очень хорошая идея, я попробую это, спасибо. – user542584

+0

Я считаю, что я этого не знал, спасибо! –

+2

omfg thats, что я был soooooooo пропавшими без вести .... вы не можете себе представить ... даст вам репутацию +20, если бы я мог –

1

Посмотрите дальше в журнале аварии, и есть вероятность, что в какой-то момент он будет указывать на фактический метод и линии.

См., Например, в приведенном ниже блоке из журнала аварии устройства, последняя строка ясно указывает на запрос: didLoad: метод в классе FacebookController.m в строке 264.

0x33defacb -[NSObject doesNotRecognizeSelector:] + 175 
0x33dee945 ___forwarding___ + 301 
0x33d49680 _CF_forwarding_prep_0 + 48 
0x00037e47 -[FacebookController request:didLoad:] (FacebookController.m:264) 
+0

Привет, Спасибо за ответ, к сожалению, он не показывает ничего из этого. Я отредактировал вопрос с оставшейся частью журнала сбоев – user542584