У меня ужаснулась ошибка, которую я просто не могу понять, как отлаживать. В основном я запускаю свой код на симуляторе, и все в порядке.Приложение для iPhone отладки
Однако, когда я иду на фактическое устройство, я получаю ошибку EXC_BAD_ACCESS. К сожалению, при работе на телефоне под отладчиком проклятая вещь работает нормально, поэтому я не могу судить, где происходит ошибка.
У меня была одна трассировка стека, которую я не мог воспроизвести, поэтому я уверен, что строка в моем коде, вызывающая проблему, является этой (но я не могу для жизни меня понять как это может быть):
[[NSNotificationCenter defaultCenter] postNotificationName:@"SubscriberChanged" object: nil];
фактическая ошибка была на objc_msgSend около четырех кадров ниже этой линии, но его в коде, который, как представляется, быть частью iPhone SDK, так что я не имею источника в осмотрите его.
Может ли кто-нибудь дать мне несколько указателей на то, как я могу разобраться, где эта проблема? У меня есть крайний срок, чтобы отправить эту штуку, и я не могу позволить ей выйти вот так ...
Наконец-то мне удалось воспроизвести это в отладчике. Трассировка стека, которую я получаю, выглядит следующим образом:
#0 0x30011940 in objc_msgSend()
#1 0x3054dc80 in _nsnote_callback()
#2 0x3024ea58 in _CFXNotificationPostNotification()
#3 0x3054b85a in -[NSNotificationCenter postNotificationName:object:userInfo:]()
#4 0x3054dbc0 in -[NSNotificationCenter postNotificationName:object:]()
#5 0x000027c6 in -[My2CentsAppDelegate handleMOCChange:] (self=0x1159d0, _cmd=0x2bf90, notification=0x147400) at /Users/sdussin/Desktop/UPOD Research LLC/Development/My2Cents/Classes/My2CentsAppDelegate.m:52
#6 0x3054dc80 in _nsnote_callback()
#7 0x3024ea58 in _CFXNotificationPostNotification()
#8 0x3054b85a in -[NSNotificationCenter postNotificationName:object:userInfo:]()
Кадр № 5 в трассировке стека соответствует строке выше.
Оказалось, что уведомление возникло из-за проблемы. У меня, видимо, несколько экземпляров объекта вида в моем NIB. Когда они загрузились, каждый из них зарегистрировался для уведомления, затем только один из них был сохранен. Остальные были освобождены, но не были отменены для уведомления. Спасибо всем ... – Steve