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

Posted

技术标签:

【中文标题】Swift 解析查询结果未出现在 tableview 中【英文标题】:Swift parse query results not appearing in tableview 【发布时间】:2015-04-23 21:37:24 【问题描述】:

我在表格视图的各个单元格中显示来自查询的数据时遇到了困难。我相信我的逻辑是正确的,但我没有看到我在包含 Parse 查询数据的函数中调用的 console.log。这可能是一个简单的修复,但目前还没有出现。我应该看到用于验证我的查询是否正确通过的控制台日志是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
    

【问题讨论】:

是否调用了 loadParseData()? 抱歉,我更新了我的问题以拨打电话 【参考方案1】:

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

        let row = indexPath.row

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

        cell.usernameLabel.text = username

【讨论】:

以上是关于Swift 解析查询结果未出现在 tableview 中的主要内容,如果未能解决你的问题,请参考以下文章

解析“未找到查询结果(代码 101)”。无法获取对象 ID

Swift 3 解析查询

调整 TableView 大小时,Swift 3.0 表格单元格未填充

Swift 中多个未解析的标识符

Swift 2.3 pod 更新后使用未解析的标识符 Firebase 'FIR'

Swift - 表格视图中的单元格出现在另一个单元格上