如果我犯了一个菜鸟错误,请提前抱歉,但我是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
}