Самый простой способ создать словарь из plist - это использовать метод dictionaryWithContentsOfFile:
, например, чтобы загрузить plist из ваших ресурсов:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"MyPlist" ofType:@"plist"];
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithContentsOfFile:filePath];
Написание списка одинаково просто:
[dict writeToFile:filePath atomically:YES];
(обратите внимание, что вы не можете записывать в ресурсы своего приложения, поэтому вам придется создать другой путь, например, в вашем каталоге Documents, см. NSSearchPathForDirectoriesInDomains
)
Списки могут содержать только экземпляры NSDictionary
, NSArray
, NSNumber
и NSString
, поэтому вы не можете поместить CLLocation
в Plist без преобразования. Если вам нужно сохранить объекты, не относящиеся к списку, посмотрите на NSKeyedArchiver
. Он может создавать файлы и NSData
объекты из всего, что принимает протокол NSCoding
(CLLocation
делает).