Cocoa NSStatusItem“;kCG…“;错误

Cocoa NSStatusItem“;kCG…“;错误,cocoa,macos,Cocoa,Macos,出于某种原因,在控制台里我得到了 :kCGErrorIllegalArgument: CGSUnregisterWindowWithSystemStatusBar: 无效窗口 :kCGErrorFailure:设置一个 断点@CGErrorBreakpoint()到 在记录错误时捕获错误 用(我认为)这个代码 - (void)applicationDidResignActive:(NSNotification*)aNotification { statusItem = [[NSS

出于某种原因,在控制台里我得到了

:kCGErrorIllegalArgument: CGSUnregisterWindowWithSystemStatusBar: 无效窗口

:kCGErrorFailure:设置一个 断点@CGErrorBreakpoint()到 在记录错误时捕获错误

用(我认为)这个代码

- (void)applicationDidResignActive:(NSNotification*)aNotification
{
        statusItem = [[NSStatusBar systemStatusBar] 
                       statusItemWithLength:NSVariableStatusItemLength];
        [statusItem setHighlightMode:YES];
        [statusItem setEnabled:YES];

            //Set menubar item's tooltip
        [statusItem setToolTip:@"Nucleus"];
        [statusItem setMenu:theMenu];
            //Set the menubar item's title
        [statusItem setTitle:[NSString stringWithString:@"N"]];

    [statusItem retain];

}

- (void)applicationDidBecomeActive:(NSNotification*)aNotification
{
    [[NSStatusBar systemStatusBar] removeStatusItem:statusItem];
}
我相信这是堆栈跟踪(?):

0x00007fff8667349b推送%rbp
0x00007fff8667349c mov%rsp%rbp
0x00007fff8667349f mov%edi,%eax
0x00007fff866734a1 LEVEQ
0x00007fff866734a2 retq
0x00007fff866734a3 nop

为什么??我怎样才能解决这个问题


我正在Mac上使用Cocoa?

我不确定是什么导致了错误,但我注意到每次应用程序停用时,您都在泄漏
statusItem
。也许在从状态栏中删除后添加一个
[statusItem release]
会有所帮助(它肯定会修复您的漏洞)。

您能发布堆栈跟踪吗?它有助于准确地查看程序崩溃时正在执行的操作。很抱歉,但如何准确地找到“堆栈跟踪”?您添加的内容是当前函数的程序集(它只返回其第一个参数)。堆栈跟踪是已调用函数的列表。由于您有程序集,我假设Xcode捕获了异常并停止了程序的实际崩溃,因此您必须从Xcode的调试器窗口获取堆栈跟踪。在默认视图中,它位于左上角。它的顶部有您当前使用的函数,下面有调用它的函数。