gpt4 book ai didi

swift - CloudKit 应用程序数据未显示在表格 View 中

转载 作者:行者123 更新时间:2023-11-30 13:19:17 25 4
gpt4 key购买 nike

我的谓词/查询/执行查询代码正常工作,我的表格单元格设置了正确的表格单元格 Controller 和可重用标识符,我已从我的 CKRecordType 的 valueForKey 中提取了 nameLabel,但无法加载/查看更新的用户界面。

import UIKit
import CloudKit

class table: UITableViewController {
var categories: Array<CKRecord> = []

override func viewDidLoad() {
super.viewDidLoad()
}

func fetch()
{
categories = []
let publicDatabase = CKContainer.defaultContainer().publicCloudDatabase
let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: "Dining", predicate: predicate)
publicDatabase.performQuery(query, inZoneWithID: nil) { (results, error) -> Void in
if (error != nil)
{
print("Error" + (error?.localizedDescription)!)
}
else
{
for result in results!
{
self.categories.append(result)
}
NSOperationQueue.mainQueue().addOperationWithBlock( { () -> Void in
self.tableView.reloadData()
})
}
self.fetch()
}
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return self.categories.count
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let cell = tableView.dequeueReusableCellWithIdentifier("dining") as! tablecell
let restaurant: CKRecord = categories[indexPath.row]
cell.nameLabel.text = restaurant.valueForKey("Name") as? String
return cell
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}

如果需要更多信息,这里是实际项目:https://www.dropbox.com/sh/twt20r0sdauglhs/AAB6Y2CcxpT1hp0mBE_Znzgya?dl=0

最佳答案

重新访问一些旧代码后,我发现我需要将类别变量设置为

var categories: Array<CKRecord> = []

以及重新排列我的获取函数中的一些括号。我需要将 fetch 函数的调用放在函数外部(愚蠢的错误),并最终在调用 fetch() 后关闭 viewdidload 方法。

   func fetch()
{
let publicDatabase = CKContainer.defaultContainer().publicCloudDatabase
let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: "Dining", predicate: predicate)
publicDatabase.performQuery(query, inZoneWithID: nil) { (results, error) -> Void in
if (error != nil)
{
print("Error" + (error?.localizedDescription)!)
}
else
{
for result in results!
{
self.categories.append(result)
}

NSOperationQueue.mainQueue().addOperationWithBlock( { () -> Void in
self.tableView.reloadData()
})
}
}
}
fetch()
}

关于swift - CloudKit 应用程序数据未显示在表格 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37921800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com