【发布时间】:2014-06-20 11:06:46
【问题描述】:
我在 iOS 6.1(模拟器)中遇到 NSPredicates 错误
我有以下谓词:
NSPredicate *eventsWithinPeriodePredicate = [NSPredicate predicateWithFormat:@"(startDate >= %@) AND (endDate <= %@)", startDate, endDate];
如果我有一个包含两个对象的数组,其日期如下:
startDate = "2014-06-23T12:00:00.00000+0200";
endDate = "9999-12-31T23:59:59.00999+0100";
startDate = "2014-06-17T09:00:00.00000+0200";
endDate = "2014-06-17T11:00:00.00000+0200";
在 iOS 7(模拟器和设备)和 iOS 5(设备)中,如果我发送,我只会得到第二个事件 2014-06-17T00:00:00.00000 和 2014-06-17T23:59:00.00000
在模拟器中运行的 iOS 6.1 中,我得到了这两个事件。
我这里没有涉及任何 iOS6 特定代码。这真的是一个错误吗?我没有 iOS 6 设备,因此无法确定这是否会影响设备。
【问题讨论】:
-
原来 iOS6.1 将日期 9999-12-31 解释为 1999-01-01 这就是搞砸了我的日期,进而搞砸了我的 NSPredicate。
标签: ios objective-c nspredicate ios6.1