这是我的代码,用于将每个单词从文本文件转换为NSArray,但是当我尝试将数组中的一个单词与我的文本字段匹配时,它根本不起作用。
-(NSString*) replaceBadWords:(NSString*)userText {
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"badwords" ofType:@"txt"];
NSString *fileContents = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
NSArray *lines = [fileContents componentsSeparatedByString:@"\n"];
NSLog(@"lines: %@", lines);
for(NSString* s in lines){
userText =[userText stringByReplacingOccurrencesOfString:s withString:@"" options:NSCaseInsensitiveSearch range:NSMakeRange(0,[userText length])];
}
return userText;
}
- (void)textFieldDidChange:(NSNotification *)notif {
NSLog(@"textfielddidchange");
NSString *tmp = [self replaceBadWords:Name.text];
NSLog(@"tmp: %@", tmp);
if(![tmp isEqualToString:Name.text])
Name.text = tmp;
}
只要用户键入新的单词/字母,当文本字段文本发生更改时,就会触发此代码。任何想法为什么这不起作用?
最后,我只想查看文本域文本是否与文本文件中的单词匹配,如果是,则生成textfield.text,nil。但是这段代码没有这样做,我只需要修复它。
答案 0 :(得分:1)
此
if(![tmp isEqualToString:Name.text])
意味着它们不应该相同。那是你想要的吗?
答案 1 :(得分:1)
使用此:link。
我认为你需要:
- (void)textFieldDidBeginEditing:(UITextField *)textField
,因为:
- (void)textFieldDidChange
在第一封写完第一封信之后,一遍又一遍地开火。