Как загрузить файл plist с диска как NSDictionary на iOS? - PullRequest
14 голосов
/ 18 марта 2011

Я хочу загрузить файл plist с диска (документы, кэш приложения, ...), а не из пакета ресурсов.

Ответы [ 2 ]

40 голосов
/ 18 марта 2011

Вы можете загрузить список из любого доступного пути к файлу с помощью -initWithContentsOfFile: или + dictionaryWithContentsOfFile:

Загрузить список из файла и создать файлесли его не было:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                    NSUserDomainMask, YES); 
self.plistFile = [[paths objectAtIndex:0]
                    stringByAppendingPathComponent:@"example.plist"];

self.plist = [[NSMutableDictionary alloc] initWithContentsOfFile:plistFile];
if (!plist) {
    self.plist = [NSMutableDictionary new];
    [plist writeToFile:plistFile atomically:YES];
}
24 голосов
/ 15 мая 2014

Немного чище:

NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"plistName" ofType:@"plist"]; 
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithContentsOfFile:plistPath]; 
...