4

[NSLocale currentLocale]在 iOS 中,如果用户不使用阿拉伯数字(即不是 0123456789),我想执行一些特定的功能。如何检查这种情况?

4

1 回答 1

6

不幸的是,没有直接的属性要检查,但下面的代码会检查它:

NSCharacterSet *nSet = [NSCharacterSet characterSetWithCharactersInString:@"1234567890"];
NSNumberFormatter *numFmt = [[NSNumberFormatter alloc] init];
NSDecimalNumber *value = [NSDecimalNumber decimalNumberWithString:@"1234567890"];
NSCharacterSet *fSet = [NSCharacterSet characterSetWithCharactersInString:[numFmt stringFromNumber:value]];
if([fSet isSupersetOfSet:nSet]==NO){
    NSLog(@"No arabic digits");
}

检查是通过一组数字 (nSet) 针对当前语言环境的语言环境感知格式化程序 (numFmt) 完成的。该值用于格式化所有数字的数字,可以将其减少到少于 1 到 0 的数字。但是,这也可以作为其他检测的示例。请注意,使用分隔符或千位分组字符不会破坏检测,因为正在使用超集。

于 2012-07-19T21:02:30.520 回答