Как загрузить файл plist с диска как NSDictionary на iOS?

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

Ответы

Ответ 1

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

Загрузите plist из файла и создайте файл, если он не существует:

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];
}

Ответ 2

Маленький уборщик:

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