Cocoa touch 文本文件中的文本字段文本匹配数组

Cocoa touch 文本文件中的文本字段文本匹配数组,cocoa-touch,textfield,Cocoa Touch,Textfield,这是我将文本文件中的每个单词放入NSArray的代码,但当我尝试将数组中的一个单词与文本字段匹配时,它根本不起作用 -(NSString*) replaceBadWords:(NSString*)userText { NSString *filePath = [[NSBundle mainBundle] pathForResource:@"badwords" ofType:@"txt"]; NSString *fileContents = [NSString stringWithContent

这是我将文本文件中的每个单词放入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文本是否与文本文件中的单词匹配,如果匹配,则将textfield.text设为nil。但这段代码并不能做到这一点,我只需要修复它。

if(![tmp isEqualToString:Name.text])
这意味着它们不应该是相同的。这就是你想要的吗?

使用这个:

我认为你需要:

- (void)textFieldDidBeginEditing:(UITextField *)textField
因为:

- (void)textFieldDidChange

在第一封信写完后,一遍又一遍地开火。

如果我拿出!,它会导致nslog不断触发,所以我不想让它这样做。最后,我只想看看textfield文本是否与文本文件中的单词匹配,如果匹配,则将textfield.text设为nil。我不这样认为,因为此方法必须在每次键入或删除字母后启动,以检查其是否为坏单词。不,我是这样做的:-(void)textfield didbeginediting:(NSNotification*)不,如果我和我在VDL里这样做。。。[[NSNotificationCenter defaultCenter]添加观察者:自选择器:@selector(textFieldDidBeginEditing:)名称:@“textFieldDidBeginEditingNotification”对象:名称];为什么不起作用?