2017-03-07 4 views
-1

searchViewをtableViewに実装しようとしていますが、このエラーが発生します。私はそれを削除する方法を把握することはできません。iOS - searchBar、エラー

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) { 
    searchingDataArray = origanalArray.filter({ (text) -> Bool in 
     let tmp: String = text 
     let range = tmp.range(of: searchText, options: NSString.CompareOptions.caseInsensitive) 
     return range.location != NSNotFound 
    }) 
    if (searchingDataArray.count == 0) { 
     searching = false 
    } else { 
     searching = true 
    } 
    self.tableView.reloadData() 
} 

このエラーは、コードの行5に表示され、それがこのように聞こえる:タイプレンジstring.indexの値はメンバーの場所

+0

あなたは '置き換えるリターン範囲= nil' – commando24

+0

とVAR! ://github.com/codepath/ios_guides/wiki/Search-Bar-Guide –

答えて

1

スウィフト3用の更新:

会社コード行。

// MARK:- Varirabl Declartion 

@IBOutlet weak var mSearchBar: UISearchBar! 
@IBOutlet weak var mTableView: UITableView! 

var isSearch : Bool = false 
var arrCountry = ["Afghanistan", "Algeria", "Bahrain","Brazil", "Cuba", "Denmark","Denmark", "Georgia", "Hong Kong", "Iceland", "India", "Japan", "Kuwait", "Nepal"] 
var arrFilter:[String] = [] 

// MARK:最初の回線使用中UISearchBarデリゲートメソッド

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) { 

    if searchText.characters.count == 0 { 
     isSearch = false; 
     self.mTableView.reloadData() 
    } else { 
     arrFilter = arrCountry.filter({ (text) -> Bool in 
      let tmp: NSString = text as NSString 
      let range = tmp.range(of: searchText, options: NSString.CompareOptions.caseInsensitive) 
      return range.location != NSNotFound 
     }) 
     if(arrFilter.count == 0){ 
      isSearch = false; 
     } else { 
      isSearch = true; 
     } 
     self.mTableView.reloadData() 
    } 
} 
0

が、これはあなたのために役立つかもしれ試していない:

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() 
} 
+0

HTTPS'にrange.location'戻ることができましょうかsearchingDataArray –

関連する問題