我使用此代码保存:
[[NSUserDefaults standardUserDefaults] setValue:@"vruch" forKey:@"nastoikaIP"];
[[NSUserDefaults standardUserDefaults] synchronize];
并加载此代码:
NSString* automanual = [[NSUserDefaults standardUserDefaults]
valueForKey:@"nastroikaIP"];
if ([automanual isEqualToString:@"vruch"]) {
autovruch.selectedSegmentIndex = 1;
[self obnovittext];
}
答案 0 :(得分:11)
您不应该使用方法setValue:
(来自NSKeyValueCoding
协议),而是setObject:
(来自NSUserDefaults
类)来存储字符串。
[[NSUserDefaults standardUserDefaults] setObject:@"vruch" forKey:@"nastroikaIP"];
[[NSUserDefaults standardUserDefaults] synchronize];
您可以使用方法stringForKey:
NSString* automanual = [[NSUserDefaults standardUserDefaults] stringForKey:@"nastroikaIP"];
最后,请注意,通常最好为NSUserDefaults
中使用的键定义常量,以避免任何错误输入错误,这些错误在发生时可能很难调试。
修改强>
看起来您已经犯了错误输入错误nastoikaIP
!= nastroikaIP
。注意缺少/额外的r
字母。
答案 1 :(得分:1)
保存字符串,因此需要setObject而不是setValue
[[NSUserDefaults standardUserDefaults] setObject:@"vruch" forKey:@"nastoikaIP"];
[[NSUserDefaults standardUserDefaults] synchronize];
并为装载改变它
NSString* automanual = [[NSUserDefaults standardUserDefaults] objectForKey:@"nastroikaIP"];
if ([automanual isEqualToString:@"vruch"]) {
autovruch.selectedSegmentIndex = 1;
[self obnovittext];
}