【发布时间】:2018-01-15 07:53:33
【问题描述】:
这就是我设置或创建我的 NSDictionary 对象的方式:
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
[userDefault setObject:[NSArray arrayWithObjects:@"ar", nil] forKey:@"AppleLanguages"];
[userDefault synchronize];
而且,我在这里获取并存储到本地 NSDictionary:
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
NSDictionary *dictLanguage = [userDefault objectForKey:@"AppleLanguages"];
[userDefault synchronize];
这里我想用同样的方法检查是@"ar"还是@"en":
if ([[[dictLanguage objectForKey:@"AppleLanguages"] isEqualToString:@"ar"]]) {
strCategoryUrl = [NSString stringWithFormat:@"%@%@", ROOT_URL, API_PRODUCT_MAIN_AR];
}
else if ([[dictLanguage objectForKey:@"AppleLanguages"] isEqualToString:@"en"]) {
strCategoryUrl = [NSString stringWithFormat:@"%@%@", ROOT_URL, API_PRODUCT_MAIN_EN];
}
【问题讨论】:
-
您不能存储数组并取回字典。
dictLanguage将是一个包含NSString的NSArray。当您尝试将其视为字典时,您会遇到异常。对synchronize的调用也是不必要的,尤其是在读取时。
标签: ios objective-c nsarray nsdictionary nsuserdefaults