2016-12-16 3 views
0

Swift 3を使用してXcodeで検索バーを作成しました。私はAPIを使用してデータを取得します。しかし、私が検索している間、カーソルが消えます。それだけでなく、私がそれに遅れを入れる前に、私は1文字しか入力できませんでした。私はそれが私のコード、非同期かどうか分からない。 テーブルビューをフィルタリングするときにUISearchFieldに問題が発生する

func searchBar(searchBar: UISearchBar, textDidChange searchText: String) { 
    filtered = data.filter({ (text) -> Bool in 
     let tmp: NSString = text 
     let range = tmp.rangeOfString(searchText, options: NSStringCompareOptions.CaseInsensitiveSearch) 
     return range.location != NSNotFound 
    }) 
    if(filtered.count == 0){ 
     searchActive = false; 
    } else { 
     searchActive = true; 
    } 
    self.tableView.reloadData() 
} 

は、だから私はドキュメントを使用して見つかりました:

static var caseInsensitive: NSString.CompareOptions 

は、だから私は、この記事を見つけた(http://shrikar.com/swift-ios-tutorial-uisearchbar-and-uisearchbardelegate/

私がいる問題は、スウィフト3で、この部分があります

私の質問はこれをどのように解釈するのですか?これは、caseInsensitiveがタイプString.CompareOptionsであることを意味していますか?

これをオプションに積み重ねますか:caseInsensitive: String.CompareOptions

私はこれでとても新しいです。私はPythonを知っています。それはそれですが、私はこれらの新しい言語を学ぶのが大好きです。

答えて

1

私はドキュメントをよく理解しています。私はそれを次のように変更しました:

let range = tmp.range(of: searchText, options: NSString.CompareOptions.caseInsensitive) 
+0

さらに、 'let range = tmp.range(of:searchText、options:.caseInsensitive)' – rmaddy

関連する問題