代码中的问题,需要帮助

时间:2015-09-09 11:21:40

标签: ios swift

我正在尝试使用解析构建消息应用,我刚刚开始使用一些代码。但是在Xcode 6.4中使用它有一些问题。有人可以帮忙吗我也遇到了类部分的问题。我是初学者。

@IBOutlet weak var messageTableView: UITableView!

var messageArray: [String] = [String]()

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    let testObject = PFObject(className: "TestObject")
    testObject["foo"] = "bar"
    testObject.saveInBackgroundWithBlock { (success: Bool, error: NSError?) -> Void in
        println("Object has been saved.")
    }
    self.messageTableView.delegate = self
    self.messageTableView.dataSource = self

    messageArray.append("Test 1")
    messageArray.append("test 2")
    messageArray.append("test 3")
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
func tableView(tableView: UITableView , cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {


    let cell = self.messageTableView.dequeueReusableCellWithIdentifier("MessageCell") as! UITableViewCell

    cell.textLabel?.text = self.messageArray[indexPath.row]

    return cell
}

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

    return messageArray.count
}
}

1 个答案:

答案 0 :(得分:0)

我认为您希望将messageArray显示在tableView中,但您的委托方法不符合UITableViewDataSource协议,因此请使用以下方法替换您的方法:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = self.messageTableView.dequeueReusableCellWithIdentifier("MessageCell") as! UITableViewCell

    cell.textLabel?.text = self.messageArray[indexPath.row]

    return cell
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return messageArray.count
}

您的完整代码将是:

import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

    @IBOutlet weak var messageTableView: UITableView!

    var messageArray: [String] = [String]()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        self.messageTableView.delegate = self
        self.messageTableView.dataSource = self

        messageArray.append("Test 1")
        messageArray.append("test 2")
        messageArray.append("test 3")
    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = self.messageTableView.dequeueReusableCellWithIdentifier("MessageCell") as! UITableViewCell

        cell.textLabel?.text = self.messageArray[indexPath.row]

        return cell
    }

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return messageArray.count
    }

}

HERE是您的示例项目。