在iOS中,如果用户[NSLocale currentLocale]
不使用Arabic Numerals(即不是0123456789),我想执行一些特定功能。我该如何检查这种情况?
答案 0 :(得分: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的数字。但是,这也可以作为其他检测的示例。 请注意,使用分隔符或千位分组字符不会破坏检测,因为正在使用超集。