ios – NSLocaleCountryCode返回nil

前端之家收集整理的这篇文章主要介绍了ios – NSLocaleCountryCode返回nil前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个bugreport,在下面的行中声明了一个崩溃,其中client是NSMutableDictionary的一个实例
[client setObject:[[NSLocale currentLocale] objectForKey:NSLocaleCountryCode] forKey:@"country"];

我的猜测是,NSLocaleCountryCode在此行中返回nil,这导致将一个nil对象添加到NSDictionary,这将导致崩溃.问题是,有人曾经遇到过这样的问题吗?是否有任何原因NSLocaleCountryCode可能无法为当前的Locale?文档没有说任何返回零价值,我认为这将永远返回一个有效的国家.

最好的祝福,
迈克尔

解决方法

others人遇到这个问题,当NSLocale是“系统区域”时.你需要在你的编码中更加防守,如果没有填充密钥或使用[NSNull null]:
NSLocale *locale = [NSLocale currentLocale];
NSString *country = [locale objectForKey:NSLocaleCountryCode];
if (country != nil)
{
    [client setObject:country forKey:@"country"];
}

猜你在找的iOS相关文章