Лучший способ хранить и загружать большие объемы данных в Objective-C - PullRequest
1 голос
/ 07 октября 2011

Я нахожусь в процессе создания приложения, которое будет использовать много данных, например, ~ 100 записей, каждая из которых содержит несколько изображений,> 250 слов текста и многочисленные значения в 1 слово / символ.

Мне просто интересно узнать, как лучше всего это сделать в цели c?

Например, есть ли у меня простой текстовый файл, содержащий все значения, и затем считанный во время выполнения?

Или мне нужно создать объект, который содержит все эти значения?

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

Ответы [ 2 ]

2 голосов
/ 07 октября 2011

Сотня записей, возможно, с несколькими дюжинами полей, - это не много данных.Я бы предложил хранить данные в виде списка свойств, возможно, в виде массива словарей.Это самое простое решение, и, вероятно, более чем адекватное для ваших нужд.Загрузка ваших данных может быть простой:

NSArray *records = [[NSArray alloc] initWithContentsOfFile:pathToFile];

Каждая запись в массиве может быть словарем с ключом для каждого поля в записи.Это дает вам большую гибкость.Конечно, вы можете получить доступ к каждой записи по отдельности, но вы также можете использовать NSPredicate, чтобы выбрать подмножества записей, которые соответствуют указанным вами критериям.Вы также можете использовать кодирование значения ключа с массивом, чтобы получить массив всех значений для конкретного ключа.Например, если вам нужен массив поля «имя» для каждой записи, вы можете сказать:

NSArray *names = [records valueForKey:@"name"];

Есть место для таких решений, как SQLite и Core Data, но, вероятно, они вам не понадобятся.для такого небольшого набора данных.

2 голосов
/ 07 октября 2011

У вас есть много вариантов.Вы можете хранить данные в списках, создавать объекты для них и сериализовать в файл или использовать базу данных.Для вашего конкретного сценария я бы рекомендовал хранить в базе данных, такой как sqlite.

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