gpt4 book ai didi

swift - Xcode Swift 在 tableView 中显示来自 CloudKit 的数据

转载 作者:搜寻专家 更新时间:2023-11-01 07:26:43 25 4
gpt4 key购买 nike

希望有人能帮助我。我试图在带有原型(prototype)单元格的 UITableview 中显示来自 CloudKit 的数据(privateData),但我的代码确实显示了我存储在 CloudKit 中的数据。存储数据没问题。

我的代码是:

var arrayname = [CKRecord]()
var arraydate = [CKRecord]()

let privateDB = CKContainer.defaultContainer().privateCloudDatabase
let cloudContainer = (CKContainer.defaultContainer().addOperation)

func loadData() {

arrayname = [CKRecord]()

let publicData = CKContainer.defaultContainer().publicCloudDatabase
let query = CKQuery(recordType: "Notes", predicate: NSPredicate(format: "TRUEPREDICATE", argumentArray: nil))
query.sortDescriptors = [NSSortDescriptor(key: "name", ascending: false)]
publicData.performQuery(query, inZoneWithID: nil) { (results:[CKRecord]?, error:NSError?) -> Void in
if let arrayName = results {
self.arrayname = arrayName
dispatch_async(dispatch_get_main_queue(), { () -> Void in
self.tableView.reloadData()
})
}
}
}

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrayname.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! MainViewCell

if arrayname.count == 0 {
return cell
}

let name = arrayname[indexPath.row]

if let nameContent = name["name"] as? String {
cell.nameLabel?.text = nameContent
}


let date = arrayname[indexPath.row]

if let dateContent = date["date_end"] as? String {
cell.nameLabel?.text = dateContent
}

return cell
}

最佳答案

让它工作 :-) ......首先我必须为我的对象创建一个数组:

var arrayName: Array<CKRecord> = []

然后我查询数据:

 func loadData() {

let container = CKContainer.defaultContainer()
let privateDatabase = container.privateCloudDatabase
let predicate = NSPredicate(value: true)

let query = CKQuery(recordType: "Notes", predicate: predicate)

privateDatabase.performQuery(query, inZoneWithID: nil) { (results, error) -> Void in
if error != nil {
print(error)
}
else {
print(results)

for result in results! {
self.arrayName.append(result)
}

NSOperationQueue.mainQueue().addOperationWithBlock({ () -> Void in
self.tableView.reloadData()
self.tableView.hidden = false
})
}
}
}

然后我在我的表格 View 中显示数据:

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! MainViewCell

let noteRecord: CKRecord = arrayName[indexPath.row]

cell.nameLabel?.text = noteRecord.valueForKey("name") as? String
cell.dateLabel?.text = noteRecord.valueForKey("date_end") as? String

return cell
}

关于swift - Xcode Swift 在 tableView 中显示来自 CloudKit 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35627848/

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