我在iPod touch上运行我的iOS应用程序,我似乎收到了很多内存警告。不知道为什么会这样,我使用了仪器而我没有使用那么多内存。无论如何,有时在接收到内存警告后,工具栏上的某些UIBarButtonItem会消失(例如,导航控制器中的后退按钮)。
这是一个真正的问题,唯一的解决方法就是杀死应用并重启。我该如何处理这种情况?也许有办法重新加载栏按钮项?有没有人遇到类似的东西,你会怎么做?
感谢您的帮助。
编辑:我应该补充一点,我的UIBarButtonItems有自定义图像。我在viewDidLoad中设置了这些图像。也许低内存警告会释放这些图像,然后它们不再被加载。我想可能就是这样,但是我如何确保如果再次出现视图,图像会再次加载?
EDIT2:似乎问题是在viewDidUnload中我将其中一个BarButtonItem设置为nil。我认为当我设置IBOutlet时,它实际上是由XCode自动插入的。这是正确的做法,还是我不应该把它设置为零。如果是这样,我如何在以后适当地重新分配?
答案 0 :(得分:1)
如果您在本地设置图像并且没有对它们的强引用,那么一旦它们超出范围,操作系统就会将它们视为“一次性”。收到内存警告后,将取消分配。尝试保持对图像的更大范围的引用。
答案 1 :(得分:0)
不要处理症状(UIBarButtons消失),而是尝试查找程序泄漏内存的位置。以下是有关查找内存泄漏的一些提示:
最后,当您确定没有内存泄漏和那些警告,但是您的按钮仍在消失时,请在新问题中发布一些代码。