count对象Parse Swift + tableView Section

时间:2015-05-17 16:30:14

标签: ios swift parse-platform tableview

我对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)")


}

此函数不会返回Int但是Int32。我试图用return Int(count)更改返回值,但是我收到错误。

然后我想在函数中使用这个函数:

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

countObjectsInBackgroundWithBlock返回void,并获取一个也返回void的块参数。

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

更好的设计是直接获取每个部分的数据,将结果放在数据源数组中,然后重新加载表。然后numberOfRowsInSection可以执行它的目的,只返回一个数组的计数。