Хранение 300 записей iPhone - PullRequest
0 голосов
/ 14 июня 2011

Я читаю фид JSON с 300 записями массива.Каждая запись представляет собой объект с около 8 записей.Это много для локального хранения в словаре при запуске?

Если так, я должен просто читать данные из ленты онлайн каждый раз, когда запрашиваются данные?

Ответы [ 3 ]

3 голосов
/ 14 июня 2011

Если он не часто меняется, вы можете кэшировать его в хранилище базовых данных и обновлять отдельные записи, которые были удалены, удалены или добавлены заново, вместо того, чтобы заново создавать хранилище при запуске.

Даже если он часто меняется, еще одним преимуществом использования компакт-диска является то, что вы можете быстро запросить в хранилище базовых данных конкретные записи вместо (возможно) итераций по каждой записи.

2 голосов
/ 14 июня 2011

Подход с меньшим количеством кода состоит в том, чтобы сохранить словарь в списке и запросить данные самостоятельно. IPhone может обрабатывать 300 объектов в памяти без задержек, поэтому я не стал бы беспокоиться ни о чем другом, если бы не пришлось. Время обновления канала зависит от логики вашего приложения.

NSString *path = [[NSBundle mainBundle] pathForResource:@"feed" ofType:@"plist"];
[dict writeToFile:path atomically:YES]; // write
[dict dictionaryWithContentsOfFile:path]; // read
[dict enumerateKeysAndObjectsUsingBlock:^(id key,id obj,BOOL *stop){ //iterate
    NSLog(@"%@",[NSString stringWithFormat:@"%@=%@", key, obj]);
}];

Для большей производительности используйте бинарный лист. Если вам нужно выполнить сложные запросы, используйте NSPredicate или Базовые данные.

0 голосов
/ 14 июня 2011

Да, вы должны просто читать данные из ленты онлайн каждый раз, когда запрашиваются данные.Хотя 300 записей массива не слишком большие данные.Но в случае прямых трансляций вы всегда должны читать данные каждый раз, когда запрашиваются данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...