UISearchController 找不到前四个数据

UISearchController doesn't find first four data

我有一个 Parse.com 的应用程序。我在解析数据时使用 UISearchController。它的效果很好。但是 UISearchController 在解析数据中找不到前四个数据。我删除了解析中的所有数据并再次加载新数据,但错误仍然存​​在。

示例:我在解析数据中搜索了 iPhone 原文,但没有找到。但是我可以找到其他数据。 请帮助我。

已更新: 我的代码 UISearchController

func updateSearchResultsForSearchController(searchController: UISearchController) {
        self.dataSearchResults?.removeAll(keepCapacity: false)
        var searchText = searchController.searchBar.text
        var query: PFQuery = PFQuery(className: "NewsNow")
        if searchController.active == true  {
            query.whereKey("nameNews", matchesRegex: searchText, modifiers: "i")
            self.tableView.reloadData() // 4 win!!!
        }
        query.findObjectsInBackgroundWithBlock { (results:[AnyObject]?, error: NSError?) -> Void in
            self.dataSearchResults = results as? [PFObject]
            self.tableView.reloadData()
        }
         println(searchText)
    }

    func searchBar(searchBar: UISearchBar, selectedScopeButtonIndexDidChange selectedScope: Int) {
        updateSearchResultsForSearchController(searchController)
    }
 func didDismissSearchController(searchController: UISearchController) {
        self.dataSearchResults = nil //nil
        self.tableView.reloadData()
    }

我不知道如何解决你的问题。但我确实有用于在 UITableView 中搜索的代码。我相信您可以根据需要完成这项工作!

@IBOutlet var tableView:UITableView!
@IBOutlet var searchBarObj:UISearchBar!

var is_searching:Bool!
var dataArray:NSMutableArray!
var searchingDataArray:NSMutableArray!

override func viewDidLoad() {
    is_searching = false
    dataArray = ["Apple", "Samsung", "iPHone", "iPad", "Macbook", "iMac" , "Mac Mini"]
    searchingDataArray = []
    self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
    if is_searching == true{
        return searchingDataArray.count
    }else{
        return dataArray.count
    }
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
    var cell:UITableViewCell = tableView.dequeueReusableCellWithIdentifier("Cell") as UITableViewCell
    if is_searching == true{
        cell.textLabel?.text = searchingDataArray[indexPath.row] as NSString
    }else{
        cell.textLabel?.text = dataArray[indexPath.row] as NSString
    }
    return cell
}

func searchBar(searchBar: UISearchBar, textDidChange searchText: String){
    if searchBar.text.isEmpty{
        is_searching = false
        tableView.reloadData()
    } else {
        println(" search text %@ ",searchBar.text as NSString)
        is_searching = true
        searchingDataArray.removeAllObjects()
        for var index = 0; index < dataArray.count; index++
        {
            var currentString = dataArray.objectAtIndex(index) as String
            if currentString.lowercaseString.rangeOfString(searchText.lowercaseString)  != nil {
                searchingDataArray.addObject(currentString)

            }
        }
        tableView.reloadData()
    }
}