EXC_BAD_ACCESS в простом проекте XCode 4

#xcode4 #preferences #exc-bad-access

#xcode4 #настройки #исключение-bad-access

Вопрос:

Мне нужна помощь с Xcode 4. Я начал с чего-то очень простого, создал проект cocoa и добавил объект Window и назвал его preferences. Затем, чтобы получить доступ к этому новому окну, я связал его с действием makeKeyAndOrderFront в пункте меню «Настройки». Просто, затем, когда я запускаю приложение, при первом нажатии на пункт меню настроек окно настроек открывается просто отлично… после того, как я закрою его и снова нажму на пункт меню настроек, приложение завершит работу с EXC_BAD_ACCESS на главном.m

Кто-нибудь знает, в чем проблема?

Ответ №1:

У меня была точно такая же проблема, и я подозреваю, что мы оба следовали одному и тому же списку скудной учебной информации, чтобы создать окно настроек, подобное Apple.

Я решил эту проблему только сейчас, просто установив window = nil , а не пытаясь заинтересовать [window autorelease] . Как я тестировал, использование [window release] вызвало бы проблему мгновенно, в то время как [window autorelease] привело бы к повторному сбою.

Ответ №2:

У меня было такое же поведение. После некоторых тестов я понял, что проблема заключается в том, что при втором нажатии на меню настроек вы отправляете сообщение в окно, которое было выпущено (объект больше не существует). Вы можете проверить это, добавив переменную среды ‘NSZombieEnabled’, для которой установлено значение ‘YES’ на вкладке ‘Аргументы’ ваших исполняемых файлов из XCode.

Я решил эту проблему, сняв флажок «выпускать при закрытии» в построителе интерфейса для окна, используемого в качестве окна настроек.

Пока. Питер.