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