Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ios:NSLocale/分组分隔符-恼人的警告_Ios_Objective C_Nslocale - Fatal编程技术网

ios:NSLocale/分组分隔符-恼人的警告

ios:NSLocale/分组分隔符-恼人的警告,ios,objective-c,nslocale,Ios,Objective C,Nslocale,我经常使用NSLocale来设置数字或货币格式。例如,我这样使用它: NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; // Config the NSNumberFormatter ... formatter.groupingSeparator = [[NSLocale currentLocale] objectForKey:NSLocaleGroupingSeparator]; 编译器总是给我警告:找到了多个名

我经常使用
NSLocale
来设置数字或货币格式。例如,我这样使用它:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
// Config the NSNumberFormatter ...
formatter.groupingSeparator = [[NSLocale currentLocale] objectForKey:NSLocaleGroupingSeparator];
编译器总是给我警告:
找到了多个名为“objectForKey:”的方法

在更大的项目中,这真的很烦人(20多个此类警告)。我发现消除此警告的唯一方法是对
NSDictionary
执行类型转换:

formatter.groupingSeparator = [(NSDictionary *)[NSLocale currentLocale] objectForKey:NSLocaleGroupingSeparator];
这是可行的,但我不确定这是否会导致问题,因为
[NSLocale currentLocale]
似乎不是直接的
NSDictionary
[[NSLocale currentLocale]类]
返回
\u NSCFLocale


有更好的解决方案吗?

CMD+单击您的
objectForKey
语句。Xcode将在NSDictionary.h中找到该方法

现在像这样更改代码

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
...
NSLocale *currentLocale = [NSLocale currentLocale];
formatter.groupingSeparator = [currentLocale objectForKey:NSLocaleGroupingSeparator];
然后按住CMD键并再次单击此
objectForKey
语句。Xcode将转到正确的位置NSLocale.h

或者,正如您所建议的,您可以像

formatter.groupingSeparator = [(NSLocale *)[NSLocale currentLocale] objectForKey:NSLocaleGroupingSeparator];
谢谢愚蠢的编译器;)请在您的答案中添加以下替代选项,因为它会保存一行代码:
formatter.groupingSeparator=[(NSLocale*)[NSLocale currentLocale]objectForKey:NSLocaleGroupingSeparator]