앱 런타임 중에 사용자가 변경 한 전역 설정 변수 (SettingsVariable.settingOne)가 있습니다. 사용자가 영구적으로 변경하도록하고 싶지만 앱이 다시로드 될 때마다 순간적으로 원래 값으로 되돌립니다. 사용자가 값을 false로 변경하지만 앱이 다시 실행되면 변수 값이 원래 값으로 다시 변경됩니다. 앱 닫히면스위프트 : 앱을 열고 닫을 때 사용자 기본값이 저장 /로드되지 않음
NSUserDefaults.standardUserDefaults().setBool(false, forKey: "settingOne")
하고 : 값이 다음 코드 변경
는(SWIFT 2)라고
다음func applicationWillTerminate(application: UIApplication) {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
NSUserDefaults.standardUserDefaults().setBool(SettingsVariables.settingOne, forKey: "settingOne")
}
앱 다시 열리면 :
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
NSUserDefaults.standardUserDefaults().boolForKey("settingOne")
return true
}
하지만 settingOne의 값은 원래 'true'의 기본값으로 되돌아갑니다. 응용 프로그램.
SettingsVariables.settingOne는 구조체 내에 포함되어 있습니다 :
import UIKit
struct SettingsVariables {
static var settingOne = true
}
답장을 보내 주셔서 감사합니다. 코드에 추가했지만 변경된 값을로드하는 것은 아닙니다. –
1) 일반적으로 '동기화'를 호출 할 필요가 없습니다. 2)'applicationWillTerminate'가 항상 호출되는 것은 아닙니다. – rmaddy
applicationDidEnterBackground 메서드에도 코드가 있지만 작동하지 않습니다. –