在我的应用程序中,我使用了arcgis sdk。我有3个不同的地图,所以我使用了3个平铺地图服务图层。此外,我还有一个图形图层,用于显示地图上所选特定区域的符号。我的应用;首先使用凭证连接服务,然后将图层添加到地图视图中。到目前为止没有问题。加载所有层后,我开始使用AGSQueryTask和AGSIdentify任务进行一些查询操作。问题开始了。调试器给我“收到内存警告。级别= 1”。我继续做缩放/平移和额外的查询操作。过了一会儿,我的应用程序崩溃没有错误。我查看了我的代码,用Google搜索了我的问题,在arcgis论坛中查看,但是我找不到解决方案和很好的解释。我用1张地图而不是3尝试了我的应用程序,但警告和崩溃并没有消失。我还处理了层视图的隐藏属性,没有任何改进。
毕竟,是否有人知道我的记忆问题的解决方案或解释或假设?
P.S。我还使用nszombienabled和guard malloc调试了我的代码,这要归功于stackoverflow :)在这个过程中,我遇到了“:CGBitmapContextInfoCreate:无法为位图数据分配..字节”。我的记忆问题是否与此错误有关?
提前致谢。
答案 0 :(得分:1)
这听起来像是一些内存泄漏或者没有释放你的应用程序不再使用的内存。
没有一般的解决方案,因为这些问题的原因可能是任何地方,也可能是任何问题。
你能做的是:
确保您在类中定义了didReceiveMemoryWarning
个方法,并尝试在那里释放未使用的内存;
在泄漏和内存分配配置文件工具下运行您的应用,并了解他们向您报告的内容;
如果您没有内存泄漏,请尝试使用snapshot analysis查找已丢弃的内存。
在这个过程中,我遇到了“:CGBitmapContextInfoCreate:无法为位图数据分配..字节”。我的记忆问题是否与此错误有关?
如果填满内存,分配调用可能会失败......这是一种影响,而不仅仅是一种原因。