私のアプリでは、ローカル設定に応じてユーザーが右小数点記号を入力するかどうかを確認しようとしています(ユーザーが間違えた場合、そのデータは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から障害が発生します。
どうすれば修正できますか?