// self.wordTextField.text = @"32";
// self.wordTextField.text = [self.wordTextField.text lowercaseString];
// self.wordTextField.text = [self.wordTextField.text stringByReplacingOccurrencesOfString:@" " withString:@"?"];
NSString *removeString = @"`[email protected]#$%^&*()_+[]\\{}|;':\",./<>";
NSMutableSet *removeSet = [NSMutableSet set];
for (unsigned i = 0; i < removeString.length; i++) {
NSRange range; range.location = i; range.length = 1;
NSString *char_ = [removeString substringWithRange:range];
[removeSet addObject:char_];
}
for (unsigned i = 0; i < self.wordTextField.text.length; i++) {
NSRange range; range.location = i; range.length = 1;
NSString *thisLetter = [self.wordTextField.text substringWithRange:range];
if ([removeSet containsObject:thisLetter]) {
self.wordTextField.text = [self.wordTextField.text stringByReplacingOccurrencesOfString:thisLetter
withString:@""];
i--;
}
}
3つのコメント行は、self.wordTextField.textが編集が変更されているときに呼び出されるメソッド内にあるため、Myメソッドが無限ループに入る原因となります。 、ループが発生します。私の質問は:なぜループや条件文の中の.text設定がこの動作を引き起こさないのでしょうか?その部分は、(ユーザ)が期待するように完全に動作します...UITextFieldを変更すると、あるケースで無限ループが発生するのはなぜですか?
'+ [NSCharacterSet characterSetWithCharactersInString:]'、 ' - [NSString rangeOfCharacterFromSet:'、 ' - [NSString stringByReplacingCharactersInRange:withString:]'が役に立ちます。または、より良いのは、NSRegularExpressionです。 –