Помещение документа такого размера в резидентную память - это быстрый способ уничтожить ваше приложение системой.
Чтобы импортировать XML-документ большого размера в систему с ограниченными ресурсами, вам потребуется синтаксический анализ потока, что уменьшит объем резидентной памяти. Здесь есть много вариантов. NSXMLParser от Apple сделает свое дело, хотя и не так быстро, как некоторые альтернативы. (Хороший обзор этих альтернатив: здесь .)
Для реализации я предлагаю синтаксический анализ в подклассе NSOperation
, периодически уведомляя основной поток с обновлениями прогресса. Это предотвратит блокирование пользовательского интерфейса при разборе произвольно больших документов.
Используя NSEntityDescription
, вы создадите отдельные автоматически выпущенные объекты для каждого брата документа в XML-файле, что является еще одним быстрым способом нехватки памяти. Посмотрите документацию Apple Effectively Importing Data , чтобы узнать, как это сделать.