Я строю алгоритм синтаксического анализа с помощью NSXMLParser. Я сомневаюсь, как лучше всего использовать память на минимальном уровне.
У меня есть valueObject (например, "Person"), этот объект имеет ≈ 30 свойств NSString, при синтаксическом анализе xml я постоянно выделяю и освобождаю временный объект Person по мере прохождения узлов. Я проверил это, и в любой момент создается только один из этих объектов Person. Когда узел пройден и Person "строит", я передаю Person в NSMutableArray и освобождаю это Person. Кажется, здесь нет проблем. (Мне понадобится массив для tableView). Когда я достигаю около 50+ объектов Person в массиве, мое приложение просто закрывается, didReceiveMemoryWarning не вызывается, никаких других предупреждений, никакого parseErrorOccurred, ничего?
Если я ограничу количество лиц в xml, приложение будет работать нормально, я не смогу найти утечки памяти с помощью инструментов. Я думаю, что просто не могу удерживать в массиве 50+ объектов Person… кажется немного жестким, но у меня не так много опыта работы с памятью на iPhone, так что это всего лишь предположение.
Xml - это результаты поиска, из которых пользователю, вероятно, понадобится всего несколько, поэтому сохранение их в моей базовой модели, чтобы держать их для отображения, кажется немного сумасшедшим.
Что было бы хорошей стратегией для хранения этих объектов Person? или мне не хватает огромной утечки памяти, так как iPhone должен справляться с гораздо большими возможностями?
Надеюсь, что некоторые опытные разработчики могут указать мне правильное направление :)
Спасибо!