Swift解析查询结果未出现在tableview中

时间:2015-04-23 21:37:25

标签: ios uitableview swift parse-platform

我在查看我在tableview的各个单元格中进行的查询中的数据时遇到了困难。我相信我的逻辑是正确的,但我没有看到我在我的函数中调用的console.log是包含Parse查询数据的。这可能是一个简单的修复,但目前还没有找到我。我应该看到的控制台日志验证我的查询是否正确通过println("\(objects.count) users are listed"),它应该显示在usernameLabel.text属性中。

import UIKit

class SearchUsersRegistrationViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    var userArray : NSMutableArray = []

    @IBOutlet var tableView: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()

        tableView.delegate = self
        tableView.dataSource = self
        loadParseData()

    }

    func loadParseData() {
        var query : PFQuery = PFUser.query()

        query.findObjectsInBackgroundWithBlock {
            (objects:[AnyObject]!, error:NSError!) -> Void in

            if error == nil {
                if let objects = objects { 
                    println("\(objects.count) users are listed")
                    for object in objects {
                        self.userArray.addObject(object)
                    }
                    self.tableView.reloadData()
                }
            } else {
                println("There is an error")
            }
        }
    }

    let textCellIdentifier = "Cell"

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

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

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier(textCellIdentifier, forIndexPath: indexPath) as! SearchUsersRegistrationTableViewCell
        let row = indexPath.row
        let cellDataParse : PFObject = self.userArray.objectAtIndex(row) as! PFObject

        //cell.userImage.image = UIImage(named: usersArr[row])
        cell.usernameLabel.text = cellDataParse.objectForKey("_User") as! String

        return cell
    }
}

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。我需要将users数组中的索引路径行转换为PFUser,然后将用户的username属性转换为String,然后将其设置为标签文本。

        let row = indexPath.row

        var user = userArray[row] as! PFUser
        var username = user.username as String

        cell.usernameLabel.text = username