调度队列未将记录加载到tableview中

时间:2016-11-03 02:25:15

标签: ios swift uitableview

如果我犯了一个菜鸟错误,请提前抱歉,但我是Swift的新手。

我正在网上关注教程,到目前为止,我有这个 - >

    func loadData () {
   posts = [CKRecord]()

    let publicData = CKContainer.default().publicCloudDatabase
    let query = CKQuery(recordType: "Post", predicate: NSPredicate(format: "TRUEPREDICATE", argumentArray: nil))
    query.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
    publicData.perform(query, inZoneWith: nil) { (results:[CKRecord]?, error:Error?) -> Void in
        if let posts = results {
            self.posts = posts
            DispatchQueue.main.async(execute: { () -> Void in
                self.tableView.reloadData()
                self.refresh.endRefreshing()
                print("refreshed")
            })
        }
    }

}

即使输出读取刷新,也没有任何记录显示出来。这只是代码的一部分,我相信我也已经缩小了这个问题。当我创建记录时,它们会显示在我的云套件仪表板中,但它们不会被拉入桌面视图。

非常感谢任何帮助!

更新:以下是数据源方法

override func numberOfSections(in tableView: UITableView) -> Int {

    return 1

}

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

    return posts.count



}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)

    if posts.count == 0 {
        return cell
    }

    let post = posts[indexPath.row]

    if let postContent = post["content"] as? String {
        let dateFormat = DateFormatter()
        dateFormat.dateFormat = "MM/dd/yyyy"
        let dateString = dateFormat.string(from: post.creationDate!)

        cell.textLabel?.text = postContent
        cell.detailTextLabel?.text = dateString
    }


    return cell

}

0 个答案:

没有答案