在我的应用程序中,我尝试检查用户是否根据本地设置输入正确的小数点分隔符(如果用户出错,该数据不会进入 CoreData 数据库):
- (void)save {
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSLocale *locale = [NSLocale currentLocale];
我得到用户输入:
NSString *firstForDistance = _forDistanceTextField.text;
尝试从字符串中提取小数点分隔符:
NSString *separator = [firstForDistance decimalSeparator];
而不是检查分隔符是否适合用户本地设置或他输入错误。如果出现拼写错误或错误,我将其替换为本地设置中的小数分隔符:
if (separator != [locale objectForKey:NSLocaleDecimalSeparator]) {
firstForDistance = [firstForDistance stringByReplacingOccurrencesOfString:separator withString:[locale objectForKey: NSLocaleDecimalSeparator]];
}
其余代码:
self.user.forDistance = [numberFormatter numberFromString:firstForDistance];
[self.delegate usersMakeViewController:self addUser:self.user];
}
那会很好很容易,但是提取不起作用:
NSString *separator = [firstForDistance decimalSeparator];
方法“decimalSeparator”是 NSNumberFormatter 的实例方法,我从 Xcode 得到错误。
我该如何解决?