count object Parse Swift + tableView 部分

count object Parse Swift + tableView Section

我是 Parse 的新手,所以我坚持使用开发人员指南和基本功能。 不幸的是,关于 countObjectsInBackgroundWithBlock 函数的文档似乎至少存在一处错误。 这是我的函数

var categoryCount: [Int] = []

func getNumberOfItemInCategory() {

    for category in categories {
        var query = PFQuery(className: "Amiibos")
        query.whereKey("category", equalTo: category)
        query.countObjectsInBackgroundWithBlock { (count, error) -> Void in
            if error == nil {
                var result = Int(count)
                println("there is \(result) in \(category)")
 //               println( "TypeName0 = \(_stdlib_getDemangledTypeName(result))")
                self.categoryCount.append(result)
            }
        }

    }
    for toto in categoryCount {
        println("toto: \(toto)")
    }
    println("categoryCountFunc: \(self.categoryCount)")


}

此函数不是 return Int,而是 Int32。我试图用 return Int(count) 更改 return 值,但出现错误。

那我想在函数中使用这个函数:

let categories = ["name1", "name2"]

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

        if categoryCount.isEmpty {
        return 0
    }
    else {
        return categoryCount[section]
    }
    }

非常感谢任何帮助非常感谢

[编辑-添加] 我添加了一个函数来获取结果并刷新 table.

func makeRequest() {
    dispatch_async(dispatch_get_main_queue(), { () -> Void in
        self.getMyObjectsFromParse()
        self.getNumberOfItemInCategory()
        self.tableView.reloadData()           
    })

countObjectsInBackgroundWithBlock returns void,并采用一个块参数,该参数也是 returns void.

已发布代码问题的核心是异步计算需要立即结果的数据源方法的计数。

更好的设计是只预先获取每个部分的数据,将结果放在数据源数组中,然后重新加载 table。然后 numberOfRowsInSection 可以做它想做的事情,只是 return 数组的计数。