我有一堆用户默认值,我保存并加载到 applicationWillTerminate/awakeFromNib 上。见下文。
这些对象是复选框 (NSButton)、滑块 (NSSlider) 和一个文本字段 (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]];