iOS(iPad)CoreGraphics&基金会记忆问题

时间:2011-08-17 14:26:22

标签: objective-c ios ipad memory-management instruments

我从核心iOS库中获得了奇怪的内存分配,在Instruments Allocations(Malloc 1.00KB)中看到,它不断上升并导致应用程序崩溃(iPad)。

该应用程序允许用户浏览文章(webview中的正文,标题/作者/标签中的日期) - 加载每个新视图控制器时发生的问题(以前的视图控制器被释放/解除分配 - 这不是问题)。

以下CoreGraphics分配仅在为UILabel设置.text属性时发生: CoreGraphics“ CGGLyphBitmapCreate ”,“ CGFontSetStrikeValue ” - 有时其中一个或两个显示6或7次(每个1KB),但每次加载时至少有一个。< / p>

除此之外,基础“ [NSNotificationCenter addObserver:selector:name:object:] ”有时会出现,有时不会出现,有时一次加载最多可达6/7次。我理解为什么添加观察可能会分配一些内存,但肯定用“ [NSNotificationCenter removeObserver:self] 取消分配视图控制器应该再次删除所有引用。

我已经包含来自Instruments的屏幕截图...甚至不会解决**有时会在加载时显示的WebCore和libcache.dylib分配。这里也很困惑。

Instruments Screenshot 1 Instruments Screenshot 2

2 个答案:

答案 0 :(得分:0)

你跟踪泄漏了吗?只要它没有泄漏记忆,你通常不必担心。

答案 1 :(得分:0)

也许你有一个没有设置自动释放池的线程?如果是这种情况,则创建自动释放对象,例如通过getter方法,该对象不能被自动释放池保留,因为它不存在,并且会泄漏。
因此,您的应用程序是多线程的,请确保每个线程都有一个覆盖大部分线程代码的@autoreleasepool{}块。