这个搜索是一个后续问题this one ..的iOS:如何从搜索字符串删除无效字符,同时允许多个单词
感谢尼克·洛克伍德,我可以用这个代码过滤不良字符:
NSString *safeSearchString = [[searchString componentsSeparatedByCharactersInSet:[[NSCharacterSet alphanumericCharacterSet] invertedSet]] componentsJoinedByString:@""];
但是,我有像“我,你”或“这不是一个”的字符串。
我希望能够搜索“你”或“那个”。
上面的代码似乎限制了我太多,我只能搜索词到特殊字符..
我可以有更多的帮助吗?
UPDATE:
我已经使用这个代码的尝试:
NSString *badChars = @"\\\'";
NSCharacterSet *badCharSet = [NSCharacterSet characterSetWithCharactersInString: badChars];
NSString *safeSearchString = [sbar.text stringByTrimmingCharactersInSet:badCharSet];
,但没有喜悦。请原谅所有的新手问题...
第二次更新:
我也试过这个代码。这是一个委托方法:
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if ((text == @"\\") || (text == @"\'")) {
return NO;
} else {
return YES;
}
}
它几乎工作,但是没有生存谓词检查:“无法解析格式字符串”主要包含[CD]‘不是’或解释包含[CD]“ISN 't'OR摘要包含[cd]'不是'OR数据包含[cd]'不是'''...
你打算如何使用safeSearchString?查询sqlite数据库? – 2012-02-12 22:30:00
'stringByTrimmingCharactersInSet:'只会从字符串的末尾移除不需要的字符,如果它们存在于中间则不会移除字符。 – jonkroll 2012-02-12 22:50:09
我已经发布了一些使用这种方法的代码,但我必须弄错它,它仍然崩溃...... JonKroll说。请任何其他想法? – 2012-02-12 23:02:41