我从核心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分配。这里也很困惑。
答案 0 :(得分:0)
你跟踪泄漏了吗?只要它没有泄漏记忆,你通常不必担心。
答案 1 :(得分:0)
也许你有一个没有设置自动释放池的线程?如果是这种情况,则创建自动释放对象,例如通过getter方法,该对象不能被自动释放池保留,因为它不存在,并且会泄漏。
因此,您的应用程序是多线程的,请确保每个线程都有一个覆盖大部分线程代码的@autoreleasepool{}
块。