Iphone CFString内存管理问题
我正在为iPhone开发一个应用程序,遇到了一些内存管理问题。在应用程序执行过程中,活动字节不断增加,没有绑定。我试图在我的代码中追踪这个问题,但似乎找不到任何会导致活动字节急剧增加的东西。我在执行过程中注意到的一点是,CFString(不可变)的分配增加最快,并且从不减少或保持不变。有人知道为什么会这样吗?在此执行过程中,应用程序所做的全部工作是从本地数组或字符串填充一个表视图,然后下载另一个字符串对象数组并填充另一个表视图。我正在使用ARCIphone CFString内存管理问题,iphone,ios,ios6,Iphone,Ios,Ios6,我正在为iPhone开发一个应用程序,遇到了一些内存管理问题。在应用程序执行过程中,活动字节不断增加,没有绑定。我试图在我的代码中追踪这个问题,但似乎找不到任何会导致活动字节急剧增加的东西。我在执行过程中注意到的一点是,CFString(不可变)的分配增加最快,并且从不减少或保持不变。有人知道为什么会这样吗?在此执行过程中,应用程序所做的全部工作是从本地数组或字符串填充一个表视图,然后下载另一个字符串对象数组并填充另一个表视图。我正在使用ARC 鉴于缺乏任何具体的细节,我会给你一些建议: 有关
鉴于缺乏任何具体的细节,我会给你一些建议:
- 有关如何使用仪器查找泄漏的指南,请参阅
- 有关如何从您的分配中获得具体建议,以及如何对这些分配的来源进行更有意义的分析,请参见本文第4点。简而言之,突出显示分配中一个无法解释的跳跃,设置底部窗口以显示调用树,隐藏系统库,并查看在哪个例程中消耗内存 也不要忽视,如果不使用ARC,或者使用任何核心基础调用,这一点尤为重要。 你在做核心基础功能吗?如果是这样,您显然需要知道您必须明确地将所有权转让给ARC(使用
CfBridgegRelease
或\uUu bridge\u transfer
)或手动调用CFRelease
。不过,我前面提到的静态分析器会向您指出这一点
- 鉴于缺乏任何具体的细节,我会给你一些建议:
- 有关如何使用仪器查找泄漏的指南,请参阅
- 有关如何从您的分配中获得具体建议,以及如何对这些分配的来源进行更有意义的分析,请参见本文第4点。简而言之,突出显示分配中一个无法解释的跳跃,设置底部窗口以显示调用树,隐藏系统库,并查看在哪个例程中消耗内存 也不要忽视,如果不使用ARC,或者使用任何核心基础调用,这一点尤为重要。 你在做核心基础功能吗?如果是这样,您显然需要知道您必须明确地将所有权转让给ARC(使用
CfBridgegRelease
或\uUu bridge\u transfer
)或手动调用CFRelease
。不过,我前面提到的静态分析器会向您指出这一点
当您查找泄漏时,您是否看到任何泄漏?或者是活动字节在增加?如果是后者,请确保没有任何循环逻辑(例如,从视图控制器A到视图控制器B执行模式转换,从B到A执行另一个模式转换(而不是取消B))。请参阅我答案中的第二点,了解分配来源。@kaiserphellos您的问题解决了吗?你能告诉我是什么解决了你的问题吗?当你寻找漏洞时,你看到了什么吗?或者是活动字节在增加?如果是后者,请确保没有任何循环逻辑(例如,从视图控制器A到视图控制器B执行模式转换,从B到A执行另一个模式转换(而不是取消B))。请参阅我答案中的第二点,了解分配来源。@kaiserphellos您的问题解决了吗?你能告诉我是什么解决了你的问题吗?