【问题标题】:Swift: Cannot invoke 'reloadData' with no argumentsSwift:不能在没有参数的情况下调用“reloadData”
【发布时间】:2015-08-24 08:02:30
【问题描述】:

我目前正在用 Swift 构建我的第一个应用程序。我使用 Parse 作为数据库,并希望在表 Recipes 中显示所有标题。我为所有标题创建了一个数组,并每次添加一个标题。但是我的 tableView 函数没有更新它(count = 0)

我认为这是因为在我将标题附加到我的数组后我没有重新加载 tableView。但是,如果我添加 self.tableView.reloadData(),我会收到错误消息 --> 无法在没有参数的情况下调用“reloadData”。

有人可以帮帮我吗?我尝试了很多东西并在互联网上到处寻找,但找不到答案。

我的代码:

import UIKit
import Parse
import Bolts

class FirstViewController: UIViewController, UITableViewDelegate {

    var titel = [String]()
    var afbeelding = [UIImage]()
    var afbeeldingFile = [PFFile]()

    override func viewDidLoad() {
        super.viewDidLoad()

        var query = PFQuery(className:"Recipes")
        query.findObjectsInBackgroundWithBlock {
            (objects: [AnyObject]?, error: NSError?) -> Void in

            if error == nil {
                // The find succeeded.
                println("Successfully retrieved \(objects!.count) scores.")
                // Do something with the found objects
                if let objects = objects as? [PFObject] {
                    for object in objects {

                        self.titel.append((object["titel"] as! String?)!)

                        println(self.titel)

                        self.tableView.reloadData() //THIS GIVES AN ERROR - Cannot invoke 'reloadData' with no arguments

                    }
                }
            } else {
                // Log details of the failure
                println("Error: \(error!) \(error!.userInfo!)")
            }
        }

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
     // Dispose of any resources that can be recreated.
    }

    func numberOfSectionsInTableView(tableView: UITableView) -> Int {

        return 1

    }

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

        return titel.count

    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! Cell

        cell.gerechtTitel.text = titel[indexPath.row]

        return cell

    }

}

希望你们能帮帮我:)

【问题讨论】:

    标签: ios swift uitableview tableview


    【解决方案1】:

    错误消息具有误导性,但问题是您的FirstViewController 没有tableView 属性。

    您很可能希望FirstViewController 继承自 UITableViewController 而不是 UIViewController。那将解决 问题是因为UITableViewController tableView 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多