簡體   English   中英

Swift:PFObject為Array時解析PFQueryTableViewController-numberOfRowsInSection

[英]Swift : Parse PFQueryTableViewController - numberOfRowsInSection when PFObject is Array

我是Swift和Parse的新手。 我正在使用PFQueryTableViewController,我想呈現的對象是一個數組。 現在,表視圖顯示了indexPath.row = 0的Array的第一個元素。但是當我重寫PFQueryTableViewController並返回3時,出現錯誤。 如果計數正常,是否可以從cellForRowAtIndexPath傳遞帶有全局變量的“ friends”數組的計數?

queryForTable:

override func queryForTable() -> PFQuery {
        var query : PFQuery = PFUser.query()!
        var result = query.whereKey("username", equalTo: PFUser.currentUser()!.username!)
        return result
    }

的cellForRowAtIndexPath

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell {

        var cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! PFTableViewCell!
        if cell == nil {
            cell = PFTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")
        }
        if let friends = object?["friends"] as? NSArray {
        cell?.textLabel?.text = friends[indexPath.row] as? String
        }
        return cell
    }

//可選的numberOfRowsInSection

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 3
    }

最好的做法是讓numberOfRowsInSection返回要顯示的集合的計數。 見下文:

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return currentUser!.friends?.count
}

如果tableView一次僅顯示一個用戶的“朋友”,則您應該為正在查看其朋友的PFUser使用一個類變量。 您的tableView numberOfRowsInSection應該如上所述。 如果這樣做,您的代碼:

if let friends = object?["friends"] as? NSArray {
     cell?.textLabel?.text = friends[indexPath.row] as? String
}

變成:

cell?.textLabel?.text = currentUser!.friends[indexPath.row] as? String

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM