applicationWillTerminate/awakeFromNibに保存してロードするユーザーデフォルトがたくさんあります。下記参照。
オブジェクトは、チェックボックス (NSButton)、スライダー (NSSlider)、および 1 つのテキストフィールド (NSTextfield) です。
私は OS X を使用しています。チェックボックスとスライダーには問題はありません。
残念ながら、NSTextfield を含む行をロードするときに問題が発生しました。
[txtRemark setStringValue :[myDefaults stringForKey:kTxtRemark]];
何らかの理由で SIBART を取得していますが、その理由がわかりません :( この行を無効にしてもエラーは発生しません。
私のアプリは例外をスローしますが、何が問題なのかを理解する方法がわかりません。
例外のスクリーンショット。
手伝ってくれてありがとう。
キーは次のように定義されています。
このようにapplicationWillTerminateにmyDefaultsを保存します
NSUserDefaults *myDefaults = [NSUserDefaults standardUserDefaults];
[myDefaults setObject :[isAppointment state] forKey:kIsAppointment];
[myDefaults setObject :[boxForEver state] forKey:kBoxForEver];
[myDefaults setObject :[boxMakeSound state] forKey:kBoxMakeSound];
[myDefaults setObject :[tickTackFlag state] forKey:kTickTackFlag];
[myDefaults setObject :[slideHour intValue] forKey:kSlideHour];
[myDefaults setObject :[slideMin intValue] forKey:kSlideMin];
[myDefaults setObject :[slideSec intValue] forKey:kSlideSec];
[myDefaults setObject :[startAuto state] forKey:kStartAuto];
[myDefaults setObject :[txtRemark stringValue] forKey:kTxtRemark];
[myDefaults setObject :[volumeAdjust intValue] forKey:kVolumeAdjust];
このようにawakeFromNibにmyDefaultsをロードします
NSUserDefaults *myDefaults = [NSUserDefaults standardUserDefaults];
[isAppointment setState :[myDefaults stringForKey:kIsAppointment]];
[boxForEver setState :[myDefaults stringForKey:kBoxForEver]];
[boxMakeSound setState :[myDefaults stringForKey:kBoxMakeSound]];
[tickTackFlag setState :[myDefaults stringForKey:kTickTackFlag]];
[slideHour setIntValue :[myDefaults stringForKey:kSlideHour]];
[slideMin setIntValue :[myDefaults stringForKey:kSlideMin]];
[slideSec setIntValue :[myDefaults stringForKey:kSlideSec]];
[startAuto setState :[myDefaults stringForKey:kStartAuto]];
[txtRemark setStringValue :[myDefaults stringForKey:kTxtRemark]];
[volumeAdjust setIntValue :[myDefaults stringForKey:kVolumeAdjust]];