我有一个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"]; }