Как исправить утечку моего приложения при использовании Qt 4.5? - PullRequest
2 голосов
/ 14 мая 2009

Без каких-либо изменений в моем коде, кроме сборки под Qt 4.5, при запуске приложения я получаю следующее предупреждающее сообщение:

*** _NSAutoreleaseNoPool(): Object 0x50a1b0 of class NSCFNumber autoreleased with
no pool in place - just leaking

Я не использую Objective-C в своем коде, но Qt 4.5 использует новую основанную на Какао серверную часть вместо Carbon.

Я не уверен, как исправить и исправить это сообщение об ошибке. У кого-нибудь есть подсказка?

1 Ответ

6 голосов
/ 15 мая 2009

Как правило, когда вы видите эту проблему в своем коде, вы заключаете в блок кода с ошибками NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; до и [pool release]; после. Вы можете установить точку останова для функции _NSAutoreleaseNoPool и просто просмотреть обход стека, чтобы увидеть, что это за код. Имейте в виду, что -autorelease используется повсеместно в Какао, поэтому это может быть не конкретный вызов autorelease в коде Qt, который его запускает.

Тем не менее, поскольку это делается в коде Qt, и, в последний раз, когда я проверял, Qt / Cocoa все еще находилась в процессе разработки, вам, вероятно, следует просто отправить отчет об ошибке с ошибкой и сканировать стек, и подождите, пока они это исправят.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...