真的很重视一些支持。
我正在设计一个 tvOS 应用程序,它在 tableView 中显示某些 CloudKit 内容,数据因当前日期而异。
每个日历日期对应于该类型中的数据。
例如,RecordType“A13032019”与 2019 年 3 月 13 日有关。
我使用 ViewDidLoad (generateDate():
*
函数生成日期(){
let formatter = DateFormatter() //2016-12-08 03:37:22 +0000 formatter.dateFormat = "ddMMyyyy" let now = Date() let dateString = formatter.string(from:now) NSLog("%@", dateString) let generateOperationalDate = ("A\(dateString)") print(generateOperationalDate) }
然后我尝试使用 generateOperationalData 在下面的 CKQuery 中运行:
函数查询数据库(){
let query = CKQuery(recordType: "\(generateDate())", predicate: NSPredicate(format: "TRUEPREDICATE", argumentArray: nil)) let sort = NSSortDescriptor(key: "trainDepartureTime", ascending: true) query.sortDescriptors = [sort] database.perform(query, inZoneWith: nil) { (records, _) in guard let records = records else { return } let sortedRecords = records
当我尝试运行它时,它会抛出一个线程错误,原因是“ *由于未捕获的异常'CKException'而终止应用程序,原因:'recordType 不能为空'* ”
所以在我看来,queryDatabase 函数在 generateDate 函数之前运行,但是我尝试延迟 queryDatabase 函数,这仍然会引发相同的错误!
无论如何我可以在queryDatabase函数运行之前生成日期(通过generateDate)吗?
谢谢