Heyho!
LSUIElement
としてNSStatusItem
という小さなアプリがあります。
ポップアップメニューのメニュー項目がコードによって更新されることがあります。しかし、更新されたNSMenuItem
(またはそのスーパーメニュー)が「強調表示」されると、何かを記録せずにアプリケーションがクラッシュします。ハイライトされたNSMenuItemを更新するとアプリケーションがクラッシュする
ご存知ですか?あなたの答えをありがとう。
Heyho!
LSUIElement
としてNSStatusItem
という小さなアプリがあります。
ポップアップメニューのメニュー項目がコードによって更新されることがあります。しかし、更新されたNSMenuItem
(またはそのスーパーメニュー)が「強調表示」されると、何かを記録せずにアプリケーションがクラッシュします。ハイライトされたNSMenuItemを更新するとアプリケーションがクラッシュする
ご存知ですか?あなたの答えをありがとう。
gdbで実行中にクラッシュを再現できますか? Gdbはコマンドラインからうまく動作し、コマンドラインでGUIアプリケーションを実行して、間欠的なクラッシュをキャッチすることがよくあります。
gdbでクラッシュしたら、bt
コマンドを使用してクラッシュ場所のバックトレースを取得します。
このようなクラッシュは、ほとんどの場合、メモリ破損、誤ったスレッドまたはオブジェクトの過剰解放によって発生します。コードを見て、ココアのメモリ管理ガイドラインに従ってください。スレッドを使用している場合は、非メインスレッドから不適切にUIオブジェクトを邪魔していないことを確認してください。
Mmh。私は「非メインスレッドから不適切にUIオブジェクトを邪魔していた」と思われます。どうもありがとうございました! これは役に立ちました: (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait – papr