ios - fatal error : Array index out of range with Parse. com

标签 ios xcode swift parsing uisearchcontroller

我有一个使用 Swift 2 和 Parse.com 的应用程序。我添加了 UISearchController,当我使用它时,应用程序崩溃了。它显示错误“ fatal error :数组索引超出范围”

当我触摸搜索栏时,字符串 "if var pfFiltered = dataForSearchController?[indexPath.row]"is EXC_BAD_INSTRUCTION 出现错误。

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell? {
    var searchText = searchController.searchBar.text

    let cellIndentifier: String = "NewsCell"

    var cell: ParseTableViewCell? = tableView.dequeueReusableCellWithIdentifier(cellIndentifier) as? ParseTableViewCell

    if searchController.active == false {
        if (cell == nil) {
            cell = ParseTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: cellIndentifier)
        }

        if let pfObject = object {
            //cell?.textLabel?.text = pfObject["textNews"] as? String
            cell?.labelNameText?.text = pfObject["nameNews"] as? String // name
            cell?.labelDataText?.text = pfObject["dateNews"] as? String // data
            cell?.labelText = pfObject["textNews"] as? String
            cell?.labelURLNews = pfObject["urlNews"] as? String // link on a site with news

            var imageFromParse = object?.objectForKey("imageNews") as? PFFile
            imageFromParse?.getDataInBackgroundWithBlock({ (imageData: NSData?, error: NSError?) -> Void in
                var image: UIImage! = UIImage(data: imageData!)!
                cell?.imageViewCell.image = image
            })
        }
    } else {
        if var pfFiltered = dataForSearchController?[indexPath.row] {
            cell?.labelNameText?.text = pfFiltered["nameNews"] as? String
            cell?.labelDataText?.text = pfFiltered["dateNews"] as? String
            cell?.labelText = pfFiltered["textNews"] as? String
            cell?.labelURLNews = pfFiltered["urlNews"] as? String

            var imageFromFilteredParse = object?.objectForKey("imageNews") as? PFFile
            imageFromFilteredParse?.getDataInBackgroundWithBlock({ (imageDataTwo: NSData?, error: NSError?) -> Void in
                var imageTwo: UIImage = UIImage(data: imageDataTwo!)!
                cell?.imageViewCell.image = imageTwo
            })
        }
    }
    return cell
}

最佳答案

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    var query: PFQuery = PFQuery(className: "NewsNow")
    if self.dataForSearchController == nil {
        return objects?.count ?? 0
    } else {
        return dataForSearchController?.count ?? 0
    }
}

关于ios - fatal error : Array index out of range with Parse. com,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30946160/

相关文章:

xcode - 为什么 Xcode 在文件夹引用中找不到标题?

ios - 如何用 portalItem 替换图层 url 以用于离线 Arcgis runtime sdk

objective-c - 如何以最有效的方式更改 'more' 选项卡的导航栏背景和文本颜色?

ios - 如何在 iOS 的导航中制作带有 Logo 和文本的自定义导航栏?

objective-c - Xcode 错误 : Expected identifier

ios - 将 Javascript 注入(inject) Webview - Swift

ios - 为什么我的代码在线程 6 : NSOperationQueue? 中运行时崩溃

swift - 如何从 Date() 中快速获取一个月中所有 4(或 5)个单独的周?

ios - UIPanGestureRecognizer 冲突

ios - 如何显示来自不同类的日期选择器方法调用?