Привязки какао и настройки приложения - сбой - PullRequest
0 голосов
/ 11 мая 2010

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

В то время как материал от Apple старше, я думаю, что у меня есть настройки почти такие же, как показано здесь: image

Когда я запускаю свое приложение (Hcode) и захожу в пункт меню настроек, оно вызывает правильное окно с настройками по умолчанию, которые я указал в привязках, за исключением пробелов на вкладке, пустым (не знаю, как это исправить ).

Когда окно закрывается, приложение вылетает с обратной трассировкой, подобной этой:

(gdb) bt
#0  0x00007fff800cb1d4 in objc_msgSend_vtable5 ()
#1  0x00007fff80447cf3 in -[NSMenu _enableItem:] ()
#2  0x00007fff80447ad8 in -[NSCarbonMenuImpl _carbonUpdateStatusEvent:handlerCallRef:] ()
#3  0x00007fff8042b3b0 in NSSLMMenuEventHandler ()
#4  0x00007fff80e06b57 in DispatchEventToHandlers ()
#5  0x00007fff80e060a6 in SendEventToEventTargetInternal ()
#6  0x00007fff80e23d85 in SendEventToEventTarget ()
#7  0x00007fff80e52e61 in SendHICommandEvent ()
#8  0x00007fff80e66357 in UpdateHICommandStatusWithCachedEvent ()
#9  0x00007fff80e02a6d in HIApplication::EventHandler ()
#10 0x00007fff80e06b57 in DispatchEventToHandlers ()
#11 0x00007fff80e060a6 in SendEventToEventTargetInternal ()
#12 0x00007fff80e23d85 in SendEventToEventTarget ()
#13 0x00007fff80e6599b in SendMenuOpening ()
#14 0x00007fff80e65388 in DrawTheMenu ()
#15 0x00007fff80e65149 in MenuChanged ()
#16 0x00007fff80e643d4 in TrackMenuCommon ()
#17 0x00007fff80e60dbe in MenuSelectCore ()
#18 0x00007fff80e60596 in _HandleMenuSelection2 ()
#19 0x00007fff802fc3b9 in _NSHandleCarbonMenuEvent ()
#20 0x00007fff802cfeda in _DPSNextEvent ()
#21 0x00007fff802cf379 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#22 0x00007fff8029505b in -[NSApplication run] ()
#23 0x00007fff8028dd7c in NSApplicationMain ()
#24 0x0000000100001cac in main (argc=1, argv=0x7fff5fbff5e0) at /Users/iaefai/Projects/Hcode/Source/main.m:13

Я в полной растерянности относительно того, в чем проблема. Есть ли потенциально лучший способ сделать это?

1 Ответ

3 голосов
/ 11 мая 2010

Ваша трассировка стека показывает сбой при обновлении / рисовании пункта меню. Похоже, это не имеет ничего общего с вашим связанным флажком.

Запустите ваше приложение на инструментах с его шаблоном Zombies; он, вероятно, скажет вам, что вы (или Какао) отправили сообщение освобожденному объекту. Выясните, что это был за объект, и исправьте недостаточное удержание или чрезмерное высвобождение, которые привели к преждевременной смерти.

...