Ваш пакет доступен только для чтения, поэтому все, что вы хотите записать, необходимо экспортировать.Вы можете использовать стандартные значения по умолчанию, чтобы сохранить всю эту информацию, если хотите.Это довольно просто:
NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
NSString *build = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
[standardDefaults setObject: build forKey:@"MyAppBuild"];
[standardDefaults setObject: version forKey:@"MyAppVersion"];
[standardDefaults synchronize];
Кроме того, вы можете скопировать лист в файловую систему устройства и читать и записывать в / из него:
Чтение:
+ (NSDictionary *) loadAppData {
NSString *finalPath;
// Load "defaults" plist
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
NSString *writablePath = [documentsPath stringByAppendingPathComponent:@"AppSettings.plist"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if([fileManager fileExistsAtPath: writablePath]){
finalPath = writablePath;
}
else{
NSString *path = [[NSBundle mainBundle] bundlePath];
finalPath = [path stringByAppendingPathComponent:@"AppSettings.plist"];
}
return [NSDictionary dictionaryWithContentsOfFile: finalPath];
}
Запись:
+ (void) saveAppData: (NSDictionary *) appData {
// Load "defaults" plist
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
NSString *writablePath = [documentsPath stringByAppendingPathComponent:@"AppSettings.plist"];
// Save it
[appData writeToFile: writablePath atomically: YES];
}