Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用;“时间间隔自现在起”;在SWIFT的谓语中_Ios_Swift_Ios8_Nspredicate_Cloudkit - Fatal编程技术网

Ios 使用;“时间间隔自现在起”;在SWIFT的谓语中

Ios 使用;“时间间隔自现在起”;在SWIFT的谓语中,ios,swift,ios8,nspredicate,cloudkit,Ios,Swift,Ios8,Nspredicate,Cloudkit,我正在尝试使用Cloudkit(SWIFT)查询过去1小时内创建的记录 我试过: let predicate = NSPredicate(predicateWithFormat : "timeIntervalSinceNow %@ < %f", "creationTime", -3600) let predicate=NSPredicate(predicateWithFormat:“TimeIntervalenceNow%@

我正在尝试使用Cloudkit(SWIFT)查询过去1小时内创建的记录

我试过:

let predicate = NSPredicate(predicateWithFormat : "timeIntervalSinceNow %@ < %f", "creationTime", -3600)
let predicate=NSPredicate(predicateWithFormat:“TimeIntervalenceNow%@<%f”,“creationTime”,-3600)
没有成功。错误消息指的是分析错误

有人知道什么是正确的格式吗


n、 b
creationTime
是表中字段的名称

您的谓词无效。看一看

应该在表达式的左侧使用。我假设您有一个对象数组,这些对象有一个名为
creationTime
的属性。那么谓词应该如下所示:

NSPredicate(format: "creationTime.timeIntervalSinceNow > %d", -3600)

请注意,我使用了“大于”
运算符,而不是
。您是在尝试对核心数据执行此操作,还是在尝试对CloudKit数据执行此操作。我认为它的对象和语法与coredata完全相同,因此您不太可能让它工作,因为商店中的日期无法理解
timeintervalencenow
,您只需使用CKQuery
类引用中可用:。Swift和Objective-C的谓词格式字符串语法应该完全相同。我添加了另一种创建谓词的方法。它应该可以与CloudKit一起使用,但是我还没有测试它,因为我不想为此建立一个完整的CloudKit项目。谢谢。使它与您的格式一起工作-不过稍微做了一些调整。
let now = NSDate()
if let anHourAgo = NSCalendar.currentCalendar().dateByAddingUnit(
    .HourCalendarUnit,
    value: -1,
    toDate: now,
    options: NSCalendarOptions(0)) {
        let predicate = NSPredicate(format: "creationDate > %@", anHourAgo)
        let filtered = records.filteredArrayUsingPredicate(predicate!)
}