Загрузка большого набора данных кусками на Iphone с помощью NSkeyedArchiver

У меня есть большой NSDictionary, записанный на диск с помощью NSkeyedArchiver. Поскольку этот словарь может быть/будет очень большим, невозможно загрузить его целиком в память. Каков наилучший способ загрузить словарь по частям, работать с этим куском, а затем переходить к следующему и т. Д. И, следовательно, экономить память.


person dubemike    schedule 01.07.2012    source источник


Ответы (1)


Не используйте NSkeyedArchiver для архивирования одного большого NSDictionary, содержащего все объекты.

Архивируйте объекты с помощью encodeObject:forKey:, разархивируйте с помощью decodeObjectForKey:.
Таким образом, вам не нужно разархивировать все NSDictionary, чтобы получить только один объект.

person Anne    schedule 01.07.2012
comment
Спасибо, в конце концов я отказался от NSkeyedArchiver в пользу [NSJSONSerialization JSONObjectWithData: параметры данных: ошибка NSJSONReadingMutableContainers:&err]; так как это привело к гораздо меньшему размеру файла. Я также закончил тем, что разделил свой архив на (меньшие) отдельные отдельные файлы и использовал NSfilewrapper. Но я не согласен с вашим ответом как с правильным. - person dubemike; 17.07.2012