UITextField の「Editing Changed」で次の関数を起動しています。目的は、ユーザーが入力したときに数値をフォーマットすることです。iOS6 以降では正常に動作していますが、ユーザーがそのフィールドに最初の文字を入力すると、iOS5 でアプリがフリーズします。誰かがこの 3 行機能の問題点を見つけるのを手伝ってくれますか? NSNumberFormatter が使用されている 3 行目でフリーズします。
-(IBAction)formatNumber:(UITextField*)sender
{
if(sender.text!=NULL)
{
NSCharacterSet *notAllowedChars = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789"] invertedSet];
NSString *currentVal=[[sender.text componentsSeparatedByCharactersInSet:notAllowedChars] componentsJoinedByString:@""];
sender.text=[NSNumberFormatter localizedStringFromNumber:[NSNumber numberWithInt:[currentVal intValue]]
numberStyle:NSNumberFormatterDecimalStyle];
}
}