绘图应用程序在ios中引发内存警告

时间:2014-12-01 07:25:37

标签: ios objective-c opengl-es

我正在开发一个iPad paint 应用程序。在我的应用程序中有一个sketch book,用户可以在任何页面中绘制sketches。我有通过识别用户touches来完成绘制草图。在应用程序中,我正在检测swipe gesture(向上/向下)并使用curl页面过渡动画&我已经成功实施了它。

现在的问题是:

1.我的绘图和翻页之间出现了冲突,因为他们都在分析用户finger touches。(例如:当我用笔从下到上绘图时,滑动手势检测到滑动事件同样,当我尝试滑动页面时,有时应用程序会在该部分上画一个笔画。)我希望它们两个同时工作。有什么办法吗?

2.用户可以在应用程序中创建N个绘图。目前我所做的是,一旦用户翻页或尝试离开屏幕就保存当前绘图(为了使用最少的内存当下一个/上一个页面即将加载时,应用程序将从缓存目录中获取正确的图像并加载它。(之前我通过从缓存目录中获取每个图形将这些图形中的每个都保存在一个数组中。)。我是维护一个数据库来存储每个绘图的ID,并使用这个id从缓存目录中读取图像。问题是,在使用几分钟(比如5或10)之后,应用程序仍会抛出内存警告。无论如何都要避免这样做?

我尝试压缩图像以解决内存警告问题,但压缩会使图像有些奇怪。我使用https://github.com/acerbetti/ACEDrawingView进行正常的绘画描边,还有另一种使用OpenGL的绘图工具中风的类型。

1 个答案:

答案 0 :(得分:0)

我认为没有代码就很难预测内存泄漏的位置。最好的选择是分析您的应用程序。转到产品 - >个人资料(窗口+ I)。现在你可以看到哪个变量占用了内存。

注意:如果您使用ARC,则垃圾收集器将负责释放内存。 如果您使用 malloc calloc 分配一些内存,则您有责任释放该内存。