Каков наилучший способ загрузки статических объектов в приложение для iOS?
У меня в списке около 100 адресов. Я хочу использовать класс CLGeocoder и методы geocodeAddressDictionary или geocodeAddressString, чтобы получить список CLPlacemarks для каждого адреса. Я не хочу, чтобы приложение делало это каждый раз при запуске (так как адреса никогда не меняются, и для этого требуется интернет). Как я могу статически хранить список из 100 объектов CLPlacemark, которые будут загружаться при каждом запуске приложения?
1 ответ
Я предлагаю:
Сохраните список в вашем приложении как файл.plist или файл JSON, который затем можно будет проанализировать при запуске в статическом NSDictionary или как переменную экземпляра объекта Singleton.
Сначала сериализуйте ваши 100 адресов в файл JSON. Вы можете попробовать использовать некоторые онлайн-инструменты, такие как: http://www.objgen.com/json
Получив текстовый JSON-файл, перетащите его в свой проект в XCode. Затем вы можете разобрать его, используя:
NSError *error;
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Addresses" ofType:@"json"];
NSURL *localFileURL = [NSURL fileURLWithPath:filePath];
NSData *contentOfLocalFile = [NSData dataWithContentsOfURL:localFileURL];
NSDictionary *addresses = [NSJSONSerialization JSONObjectWithData:contentOfLocalFile
options: NSJSONReadingMutableContainers
error:&error];
Вы можете использовать тот же метод для десериализации файла PLIST.