除了针对Qt 4.5构建之外,我的代码没有任何更改,当我运行我的应用程序时,我收到以下警告消息:
*** _NSAutoreleaseNoPool(): Object 0x50a1b0 of class NSCFNumber autoreleased with
no pool in place - just leaking
我的代码中没有使用任何Objective-C,但Qt 4.5使用的是基于Cocoa的后端而不是Carbon。
我不确定如何解决和修复此错误消息。任何人都有线索?
答案 0 :(得分:6)
通常情况下,当您在代码中看到此问题时,您可以在NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
之前和[pool release];
之后将违规代码块括起来。您可以在_NSAutoreleaseNoPool
函数上设置断点,只需查看堆栈爬网以查看有问题的代码是什么。请记住,-autorelease
在Cocoa中随处可见,因此它可能不是Qt代码中触发它的自动释放的特定调用。
然而,由于这是Qt的代码正在执行此操作,并且,最后我检查过,Qt / Cocoa仍然是一项正在进行中的工作,您应该只提交错误报告并向其堆栈爬行,并等待他们解决它。