0x0内存泄漏[iphone]

时间:2009-12-17 16:09:09

标签: iphone memory-leaks

我的应用程序漏洞了,我真的无法理解,任何人都可以帮助我吗?

工具Stacktrace:

       0 libSystem.B.dylib calloc
       1 WebCore CurrentThreadContext()
       2 WebCore WKSetCurrentGraphicsContext
       3 UIKit -[NSString(UIStringDrawing) drawAtPoint:forWidth:withFont:lineBreakMode:letterSpacing:includeEmoji:]
       4 UIKit -[NSString(UIStringDrawing) drawAtPoint:forWidth:withFont:lineBreakMode:]
       5 UIKit -[UILabel _drawTextInRect:baselineCalculationOnly:]
       6 UIKit -[UILabel drawTextInRect:]
       7 UIKit -[UILabel drawRect:]
       8 UIKit -[UIView(CALayerDelegate) drawLayer:inContext:]
       9 QuartzCore -[CALayer drawInContext:]
      10 QuartzCore -[CALayer _display]
      11 QuartzCore -[CALayer display]
      12 QuartzCore CALayerDisplayIfNeeded
      13 QuartzCore CA::Context::commit_transaction(CA::Transaction*)
      14 QuartzCore CA::Transaction::commit()
      15 QuartzCore CA::Transaction::release_thread(void*)
      16 libSystem.B.dylib _pthread_tsd_cleanup
      17 libSystem.B.dylib _pthread_exit
      18 Foundation +[NSThread exit]
      19 Foundation __NSThread__main__
      20 libSystem.B.dylib _pthread_body
      21 TestApp 0x0

4 个答案:

答案 0 :(得分:2)

这是在模拟器还是物理设备上?

如果它在模拟器上,请针对物理设备进行测试以防泄漏。众所周知,模拟器具有设备所没有的奇怪泄漏。

如果这是在物理设备上,我也无法解释它:\

答案 1 :(得分:2)

在泄漏出现之前你在做什么?有些事情可能会导致泄漏,例如,尝试不是从主线程进行UI更改。

答案 2 :(得分:0)

在我看来,就像webkit中的漏洞一样......除了向Apple提交报告之外,你可能做的事情不多。

答案 3 :(得分:0)

我认为Morion是对的。永远不要在主线程之外的其他线程中使用UI。我偶然发现了最有趣的事情。

你说:

  

我的大多数绘图都是从View(Will / Did)Appear方法完成的。或者是从线程填充的UITableViewController。

因此,控制器被另一个线程填充,这意味着该绘图也在这个“其他”线程中执行。尝试使用performSelectorOnMainThread:withObject:waitUntilDone:

看看这里:Reference Documentation