Gre*_*g G 12 notifications low-memory ios
我有一个现有的应用程序,我做了一些最近的更改,我一直在测试这些更改.该应用程序在我测试的每个iPad上运行得非常好(iOS 4和iOS 5).在我的应用程序加载多个(50+)大量图像的意见后,我收到了内存不足的警告,我viewDidUnload方法被调用,他们正确零出所有的控制和我的内存图像缓存清除本身并应用只是继续精细.
但是,在iPhone 4和iPhone4s(iOS 5.0.1和iOS 5.1)上,我遇到了一个问题,即我的应用程序内存不足而没有收到低内存警告.在加载了几个不同的视图后,最终会出现一个新的视图并且大部分是空白的,在控制台上我看到了内存分配消息,整个手机都没有响应,有时会杀死我的应用程序.
发生这种情况的特定视图每次都是不同的,因此它与任何一个视图无关,只是随着时间的推移而积累的内存.我也确认我也没有任何内存泄漏.
这个现有问题是类似的:
并且这个答案表明,如果我陷入循环,这可能会发生,但我很确定我的代码不会卡在任何循环中.我只是在UINavigationController中从一个视图点击到另一个视图,并在每个视图中加载了几个图像.另外,另一个问题是专门在iPad上发生的,我没有在iPad上看到这个问题,只有iPhone.
顺便说一下,我已经尝试通过NotificationCenter注册低内存通知,并在我的app委托中有一个applicationDidReceiveMemoryWarning方法,并且两者都有断点,并且都没有被调用.此外,调试器控制台中也没有显示低内存消息.
关于可能发生的事情的任何想法?
在2012年3月26日添加:
有趣的是,当我在新iPad上测试我的应用程序时,它有同样的问题,我在iPhone 4和4s上看到没有收到低内存通知.所以我想知道我是否看到了与其他线程相同的问题:
但该线程上的开发人员正在测试仅限iPad的应用程序,因此不会在任何iPhone上测试和发现同样的问题.
我做了一些广泛的测试,并有一个设备列表,我正确地收到了低内存警告和我从未收到它的设备.到目前为止,我只看到iOS5或更高版本的问题,但是在iOS1和iOS5的iPad1上我没有看到问题,因此它不仅仅是iOS 5上所有设备上的问题.
这是那个清单:
iPad1 4.2.1
iPad1 5.0
iPad1 5.1
iPad2 4.3.3
iPhone3G 4.2.1
iPod 3G 4.3.3
iPhone4 4.3.3
Run Code Online (Sandbox Code Playgroud)
iPhone4 5.1
iPhone4s 5.0.1
iPad3 5.1
Run Code Online (Sandbox Code Playgroud)
您可以尝试在 Instruments 中运行“Time Profiler”工具吗?它会告诉您是否在不同的线程中受 CPU 限制(尽管除非您自己创建它们,否则我会感到惊讶,如果是这种情况)。如果没有发现确凿证据,运行“分配”工具也很好。
| 归档时间: |
|
| 查看次数: |
6427 次 |
| 最近记录: |