1

プロジェクトの実行時に検索文字列のテーブルをリロードしようとすると、非常に奇妙な問題に遭遇しました

次のようなエラーが表示されます。unexpectedly found nil while unwrapping an Optional value

コードは次のとおりです。

func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {

    if tableView == self.searchDisplayController.searchResultsTableView {
        return self.results.count
    }
    else {
      return cells.count

    }
}
func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
    var cell :UITableViewCell = tableView.dequeueReusableCellWithIdentifier("addFriendCell") as UITableViewCell
      var empty = UITableViewCell()
    if cell == empty{
        cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "addFriendCell")
    }
    if tableView == self.searchDisplayController.searchResultsTableView {
        cell.textLabel.text = self.results[indexPath.row] as NSString

    }
    else{
    cell.textLabel.text = cells[indexPath.row] as NSString
    }
        return cell
}

func filterContentForSearchText(searchText:NSString , scope : NSString){
    var resultPredicate : NSPredicate = NSPredicate(format: "name contains[c]\(searchText)", argumentArray: nil)

    self.results = self.cells.filteredArrayUsingPredicate(resultPredicate)
}
func searchDisplayController(controller: UISearchDisplayController!, shouldReloadTableForSearchString searchString: String!) -> Bool {
    //self.filterContentForSearchText(searchString, scop§±±e: self.searchDisplayController.searchBar.scopeButtonTitles[self.searchDisplayController.searchBar.selectedScopeButtonIndex] as NSString)

    self.filterContentForSearchText(searchString, scope: self.searchDisplayController.searchBar.scopeButtonTitles[self.searchDisplayController.searchBar.selectedScopeButtonIndex ] as NSString) // HERE IS WHERE I GET THE ERROR

    return true
}

セル配列にデータが入力されていますが、検索バーに文字を入力するとエラーが発生します。

どうやらself.searchDisplayController.searchBar.scopeButtonTitlesnilのようですが、どうしてですか?

理由はありますか?

4

0 に答える 0