1

在我的应用程序中,我使用了 arcgis sdk。我有 3 个不同的地图,所以我使用了 3 个平铺地图服务图层。而且我还有一个图形层来显示地图上选定特定区域的符号。我的应用程序;首先使用凭证连接服务,然后将图层添加到地图视图。到目前为止没有问题。加载完所有图层后,我开始使用 AGSQueryTask 和 AGSIdentify 任务进行一些查询操作。问题从这里开始。调试器给了我“收到内存警告。Level=1”。我继续做缩放/平移和额外的查询操作。过了一会儿,我的应用程序崩溃了,没有错误。我查看了我的代码,搜索了我的问题,在 arcgis 论坛中四处查看,但是我没有找到解决方案和好的解释。我用 1 个地图而不是 3 个地图尝试了我的应用程序,但警告和崩溃并没有消失。

毕竟,有没有人知道我的记忆问题的解决方案、解释或假设?

PS由于stackoverflow,我还使用nszombienabled和guard malloc调试了我的代码:)在这个过程中我遇到了“:CGBitmapContextInfoCreate:无法为位图数据分配..字节”。我的内存问题与此错误有关吗?

提前致谢。

4

1 回答 1

1

这听起来真的像一些内存泄漏或不释放您的应用程序不再使用的内存。

没有通用的解决方案可以给出,因为这些问题的原因可能在任何地方并且是任何东西。

你可以做的是:

  1. 确保您didReceiveMemoryWarning在类中定义了方法,并尝试在那里释放未使用的内存;

  2. 在泄漏和内存分配分析工具下运行您的应用程序,并查看您可以了解他们向您报告的内容;

  3. 如果您没有内存泄漏,请尝试使用快照分析来查找废弃内存。

在这个过程中,我遇到了“:CGBitmapContextInfoCreate:无法为位图数据分配..字节”。我的内存问题与此错误有关吗?

如果你填满内存,分配调用可能会失败......这是一个结果,而不是一个原因。

于 2012-10-02T09:52:39.590 回答