首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CKQuery有全天日期

CKQuery有全天日期
EN

Stack Overflow用户
提问于 2019-03-13 17:11:32
回答 1查看 73关注 0票数 0

很有价值的支持。

我正在设计一个tvOS应用程序,它在tableView中显示特定的CloudKit内容,根据当前日期的不同,数据是不同的。

每个日历日期对应于该类型中的数据。

例如,RecordType "A13032019“涉及2019年3月13日。

我使用在ViewDidLoad (generateDate())中触发的func以正确的格式生成日期:

*

func generateDate() { 让格式化程序= DateFormatter() /2016-12-08 03:37:22 +0000 formatter.dateFormat = "ddMMyyyy“now = Date() dateString = formatter.string(from:now) NSLog("%@",dateString)让generateOperationalDate = ("A(dateString)")打印(GenerateOperationalDate)}

然后,我尝试使用generateOperationalData在以下CKQuery中运行:

func queryDatabase() { 让查询=CKQuery=recordType(recordType:"(generateDate())",谓词:NSPredicate(格式:"TRUEPREDICATE",argumentArray: 0))让sort =NSSortDescriptor(键:"trainDepartureTime",升序: true) query.sortDescriptors =排序database.perform(查询,inZoneWith: nil) {(generateDate,_) in sort记录=记录{ return = records

当我尝试运行这个程序时,它会抛出一个线程错误,原因是"*终止应用程序由于没有异常'CKException',原因:'recordType不能是空的‘*’。“

因此,在我看来,queryDatabase函数运行在generateDate函数之前,但是我尝试延迟queryDatabase函数,这仍然会引发相同的错误!

我是否可以在运行generateDate函数之前生成日期(通过queryDatabase )?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-03-15 02:43:48

您希望编写generateDate(),以便它返回一个字符串。然后,在queryDatabase()内部调用generateDate(),这样就可以保证有一个值传递给"recordType“。

我也把电话浓缩了一点。希望这能有所帮助。

代码语言:javascript
运行
复制
func generateDate() -> String {

    let formatter = DateFormatter()
    formatter.dateFormat = "ddMMyyyy"
    let dateString = formatter.string(from:Date())

    return "A\(dateString)"
}


func queryDatabase() {

    // this will make sure you have a String value
    let type = generateDate()

    // now you can pass it
    let query = CKQuery(recordType: type, predicate: NSPredicate(value: true))

    //...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55147670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档