Ios NSUserDefaults拒绝存储NSString对象
我试图在包装器类中隐藏我的设置,以便可以通过属性读取和设置配置。但由于未知原因,以下setter未按预期保存值:Ios NSUserDefaults拒绝存储NSString对象,ios,objective-c,nsuserdefaults,Ios,Objective C,Nsuserdefaults,我试图在包装器类中隐藏我的设置,以便可以通过属性读取和设置配置。但由于未知原因,以下setter未按预期保存值: - (void)setCountryCode:(NSString *)countryCode { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if (countryCode) { [defaults setObject:@"CountryCode" forKey:c
- (void)setCountryCode:(NSString *)countryCode
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (countryCode) {
[defaults setObject:@"CountryCode" forKey:countryCode];
} else {
[defaults removeObjectForKey:@"CountryCode"];
}
if (![defaults synchronize]) {
ALog(@"Something unexpected went wrong. Wasn't able to save CountryCode to NSUserDefaults!"); // Never logged, since there doesn't seem to be an error.
}
_countryCode = countryCode;
}
但在尝试恢复时,它总是检索nil
- (id)init
{
self = [super init];
if (self) {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
_countryCode = [defaults objectForKey:@"CountryCode"];
}
return self;
}
我做错了什么?而不是这个:
[defaults setObject:@"CountryCode" forKey:countryCode];
我想你应该这样做:
[defaults setObject:countryCode forKey:@"CountryCode"];
与此相反:
[defaults setObject:@"CountryCode" forKey:countryCode];
我想你应该这样做:
[defaults setObject:countryCode forKey:@"CountryCode"];
您正在
setObject:forKey:
中切换参数。尝试:
[defaults setObject:countryCode forKey:@"CountryCode"];
您正在
setObject:forKey:
中切换参数。尝试:
[defaults setObject:countryCode forKey:@"CountryCode"];
还包括方法调用,在其中设置值键和对象位于错误的位置。尝试交换它们。还包括方法调用,在其中设置值键和对象位于错误的位置。尝试交换它们。