【发布时间】:2012-04-25 16:39:50
【问题描述】:
我正在使用 ARC 开发一个使用 sqlite 数据库进行搜索的应用。
当 UISearchBar 的 textDidChange 事件发生时,我必须将数据从数据库中检索到 NSMutableArray 中以显示检索到的数据。
当 UISearchBar 的 textDidChange 时,它有大量的数据从数据库中检索出来。
从数据库中检索到大量数据后,我总是使用以下代码从 NSMutableArray 中清除。
[self.myArrayData removeAllObjects];
但是我从 NSMutableArray 中删除了所有数据,内存分配仍在发生。 没有减少。
下次我在 UISearchBar 中输入内容时,内存分配仍在增加。 在我输入 10 次或以上后,我收到 XCodes 的内存警告和内存不足。
我想知道为什么当我调用 removeAllObjects 方法时来自 NSMutableArray 的数据不清楚。 我正在使用 ARC 开发我的应用程序。 请帮帮我。
【问题讨论】:
-
您需要提供更多上下文。
-
怎么知道内存与数组关联?
-
我以前是用Instrument工具跟踪的,打了10次后,占用了100MB内存。我也用过RemoveAllObject。
-
这不能回答问题; 你怎么知道 100MB 内存甚至与数组远程关联?! 如果你 removeAllObjects,对象就会被删除。只有当它们不再被其他任何东西保留时,它们才会被释放。
标签: objective-c ios cocoa