#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.
Я решил эту проблему, сняв флажок «выпускать при закрытии» в построителе интерфейса для окна, используемого в качестве окна настроек.
Пока. Питер.