我使用 NSXMLParser 构建了一个解析算法。我怀疑将内存使用量保持在最低限度的最佳策略是什么。
我有一个 valueObject(例如“Person”),这个对象有 ≈ 30 个 NSString 属性,在解析 xml 时,我在遍历节点时不断分配和释放一个临时 Person 对象。我检查了这一点,并且在任何时候都只实例化了这些 Person 对象之一。当一个节点被遍历并且一个人被“构建”时,我将这个人传递给一个 NSMutableArray 并释放这个人。那里似乎没有问题。(我需要一个 tableView 的数组)。当我在数组中达到大约 50 多个 Person 对象时,我的应用程序刚刚退出,didReceiveMemoryWarning 没有被调用,没有其他警告,没有 parseErrorOccurred,什么都没有?
如果我限制 xml 中的人员数量,应用程序就可以正常工作,我无法使用 Instruments 找到任何内存泄漏。我认为我根本无法在一个数组中保存 50+ 个 Person 对象……看起来有点苛刻,但我对 iPhone 没有太多的记忆经验,所以这只是一个猜测。
xml 是用户可能只需要其中几个的搜索结果,因此将它们持久保存到我的核心模型以保持它们显示似乎有点疯狂。
保留这些 Person 对象的好策略是什么?还是我错过了巨大的内存泄漏,因为 iPhone 应该能够处理的远不止这些?
希望一些有经验的开发人员能指出我正确的方向:)
谢谢!