Swift:Searchbar localizedCaseInsensitiveContainsString不起作用或错误

时间:2014-07-28 13:15:45

标签: xcode swift searchbar

尝试使用localizedCaseInsensitiveContainsString进行搜索并收到以下错误消息。

  

* 由于未捕获的异常终止应用' NSInvalidArgumentException',原因:' - [__ NSCFString   localizedCaseInsensitiveContainsString:]:发送无法识别的选择器   例如0x1702297a0'

var guests = [Guest]() 
var guestresults = [Guest]()

func searchBar(searchBar: UISearchBar!, textDidChange searchText: String!) {
    guestresults = guests.filter {
        ($0.firstname as NSString).localizedCaseInsensitiveContainsString("\(searchText)")
        //($0.firstname as NSString) == searchText
    } 
}

但是当我使用比较工作时

($0.firstname as NSString) == searchText

其xcode 6 beta 4 感谢

1 个答案:

答案 0 :(得分:2)

在iOS 8 / OS X 10.10中引入了

localizedCaseInsensitiveContainsString, 因此

(str1 as NSString).localizedCaseInsensitiveContainsString(str2)

在iOS 7上出现“无法识别的选择器”异常崩溃但您可以替换它 与等效

(str1 as NSString).rangeOfString(str2, options: .CaseInsensitiveSearch).location != NSNotFound

可以回溯到iOS 2.0。