У меня есть большой NSDictionary, записанный на диск с помощью NSkeyedArchiver. Поскольку этот словарь может быть/будет очень большим, невозможно загрузить его целиком в память. Каков наилучший способ загрузить словарь по частям, работать с этим куском, а затем переходить к следующему и т. Д. И, следовательно, экономить память.
Загрузка большого набора данных кусками на Iphone с помощью NSkeyedArchiver
Ответы (1)
Не используйте NSkeyedArchiver
для архивирования одного большого NSDictionary
, содержащего все объекты.
Архивируйте объекты с помощью encodeObject:forKey:
, разархивируйте с помощью decodeObjectForKey:
.
Таким образом, вам не нужно разархивировать все NSDictionary
, чтобы получить только один объект.
person
Anne
schedule
01.07.2012
Спасибо, в конце концов я отказался от NSkeyedArchiver в пользу [NSJSONSerialization JSONObjectWithData: параметры данных: ошибка NSJSONReadingMutableContainers:&err]; так как это привело к гораздо меньшему размеру файла. Я также закончил тем, что разделил свой архив на (меньшие) отдельные отдельные файлы и использовал NSfilewrapper. Но я не согласен с вашим ответом как с правильным.
- person dubemike; 17.07.2012