在我的应用程序中,用户可以从相机拍摄照片,所以三次拍照后它就崩溃了。我无法调整图像大小(其要求)。那么还有其他方法可以避免内存泄漏。
由于
答案 0 :(得分:5)
uiimagepickercontroller
存在内存泄漏问题。
Apple建议您仅分配和实例化一个实例,并将其存储在应用程序生命周期的某个位置(运行时)。
不要创建新的,使用它并在每次需要时解除分配 使用控件。如果这样做,您的内存使用量将继续增加 直到它崩溃你的应用程序。
我个人将它作为属性存储在appDelegate中,但可能有更好的方法。
答案 1 :(得分:0)
已编辑:感谢CharlieMezak。是的,这样的泄漏可能会导致崩溃。你最好根据CharlieMezak的建议做一些检查。
可能还会导致崩溃的是您的代码尝试访问已经解除分配的内存。
我建议你先检查你的代码,看看是否有任何自动释放对象没有得到解决。
其次,打开NSZombieEnabled,测试你的应用程序。如果它确实试图访问已经解除分配的东西(Zombie),控制台将显示给你。
第三,最重要的是,发布您的崩溃报告以及可能导致此类崩溃的部分代码。您的描述有点模糊,我们需要查看报告。
答案 2 :(得分:0)
听起来你的应用程序能够正确处理照片(从用户的角度来看)两次,但第三次崩溃。听起来像是内存泄漏。
如果代码中存在逻辑错误,或者尝试访问已解除分配的对象,则第一次拍照时可能会发生崩溃。
听起来你要将图像留在记忆中,所以当你拍摄第三张照片时,你会因为前两个仍然坐在那里而失去记忆。确保你发布了你保留的内容,如果你仍然遇到问题,请发布你的代码!