사용자가 Settings.bundle을 사용하는 응용 프로그램을 개발하여 사용자가 응용 프로그램 내에서 일부 내용을 변경할 수있게했습니다. exemple 들어iOS Persistent Data/Settings.bundle
:
나는 키 "firstName을"는의 DefaultValue는 "존"입니다있는 매개 변수를했습니다. 사용자가 설정 창에서 "Bryan"으로 "John"을 변경하고 "Hello Bryan!" 내 신청서에. 이피!
사용자가 이전에 응용 프로그램을 제거하지 않고 응용 프로그램을 업데이트하면 응용 프로그램을 다시 시작할 때 "Hello Bryan!"텍스트가 표시됩니다. 여전히 거기에. MyApp.app/Library/Preferences/my.bundle.com.MyApp.plist
사용자가 데이터를 변경하면이 파일에 저장되어 사용자가 업데이트가 아닌 기기에서 앱을 제거 할 때까지이 파일이 저장됩니다.
내 문제는 내 앱을 업데이트 한 후 사용자가 "Hello Bryan!"을보고 싶지 않다는 것입니다. 하지만 DefaultValue 대신 (John) 결정할 경우에만.
내가이 솔루션에 대해 생각하는 것을해야 할 일 : 저장된 버전과 다른, 내가 알아낼하려고한다NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];
NSString* currentVersion = [infoDict objectForKey:@"CurrentSettingsVersion"];
NSString*storedVersion = [[NSUserDefaults standardUserDefaults] objectForKey:@"currentSettingsVersion"];
BOOL sameVersion = nil;
if([currentVersion isEqualToString:storedVersion]){
//No change keep preference
sameVersion = YES;
}else{
//Versions are different => erase prefs and set new currentSettingsVersion number
sameVersion = NO;
//Reset
[[NSUserDefaults standardUserDefaults] setValue:currentVersion forKey:@"currentSettingsVersion"];
}
때 현재 버전
가 어떻게이 파일을 재설정 할 수 있지만, 애플 사양을 확인 있다면?MyApp.app/Library/Preferences/my.bundle.com.MyApp.plist
이상한 점은 알고 있지만 클라이언트는 업데이트하기 전에 응용 프로그램을 제거하고 싶지 않습니다. 정말 첫 번째 앱 버전에는 Settings.bundle이 있고 두 번째 버전에는 그렇지 않은 경우가 있습니다. 그러나 우리 응용 프로그램은 Settings.bundle이 없어도 변경된 설정을 메모리에 유지합니다. 난 당신이 이해를 바랍니다
) 이것은 정말 이상한 요구 :
Pebie
"진짜로 사건은 내 첫 번째 응용 프로그램 버전에서 Settings.bundle가 있고 두 번째 버전에 없다. 그러나 Settings.bundle이없는에도 불구하고 우리의 응용 프로그램이 메모리에 변경된 설정을 유지한다는 것입니다 더 이상. " 명확하지 않지만 두 번째 버전의 제한 사항은 무엇인지 설명하십시오. –