我可能会错误地看到这个,但是现在,如果用户在搜索栏中输入某些特殊字符,该应用程序将崩溃。这些包括\和'。
撇号是一个问题,因为“不是”而“不”会导致崩溃
我应该如何解决这个问题?
非常感谢
答案 0 :(得分:2)
在使用搜索字符串进行搜索之前,请对其进行预过滤,如下所示:
NSString *safeSearchString = [[searchString componentsSeparatedByCharactersInSet:[[NSCharacterSet alphanumericCharacterSet] invertedSet]] componentsJoinedByString:@""];
答案 1 :(得分:2)
为什么不逃避角色并实际搜索用户想要的内容而不是忽略或删除他们想要的东西?
您使用的是SQLite吗?如果是这样,那么你可以通过另一个单引号来逃避单一报价。
答案 2 :(得分:1)
UISearchBar使用UISearchBarDelegate协议。要阻止用户输入\和'您需要做的就是覆盖searchBar:shouldChangeTextInRange:replacementText:
方法,如果您感觉到文本中的特殊字符,只需返回NO
。
但是在程序中处理(而不是忽略)这些特殊字符可以提供更好的用户体验。毕竟为什么你的用户甚至首先搜索“不是”和“不是”?