簡體   English   中英

為什么我的UIApplication中發生內存泄漏

[英]Why do I have a memory leak in UIApplication

我有一個iPhone應用程序項目。 我使用儀器內存泄漏工具對其進行了分析。 根據儀器,我有2次泄漏,跟蹤如下:

start main UIAplicationMain _run CFRunLoopInMode CFRunLoopRunSpecific PurpleEventCallback _UIAplicationHandleEvent sendEvent: handleEvent:withNewEvent:

在此跟蹤之后,有兩個單獨的跟蹤。 是什么原因造成的,我該如何解決?

編輯:根據儀器,泄漏在第二行

 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil); //leak
[pool release];
return retVal;

您是否缺少線程的NSAutoReleasePool

第二種方法看起來像是由另一個組件或系統線程調用的某種回調。

在實現中,在頂部創建一個NSAutoReleasePool ,並在方法完成NSAutoReleasePool其釋放:

void MyCallback {
  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
  // do stuff
  [pool release];
}

這可能是一個誤報。 UIApplicationMain可能會創建一些對象,這些對象打算在應用程序存在時一直存在,因此永遠不會費心釋放它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM