Ios NSFetchRequest来自模板-Xcode 5编辑器重写表达式

Ios NSFetchRequest来自模板-Xcode 5编辑器重写表达式,ios,objective-c,xcode,core-data,xcode5,Ios,Objective C,Xcode,Core Data,Xcode5,我正在尝试为MyMessage对象创建一个获取请求模板,这些对象具有nilwhenReaddate属性,并且收件人具有给定的用户ID。但是,当我尝试在Xcode 5 fetch request editor中创建这样一个表达式时,它会将我的表达式转换为: 为此(使用当前日期作为值): 在我单击并再次选择“请求”选项卡之后 还有其他人遇到过这个问题吗?这是一个Xcode 5错误,还是我遗漏了什么 (whenRead属性标记为可选,并且具有日期类型。) 编辑: 我应该补充一点,当我以编程方式创建

我正在尝试为
MyMessage
对象创建一个获取请求模板,这些对象具有nil
whenRead
date属性,并且收件人具有给定的
用户ID
。但是,当我尝试在Xcode 5 fetch request editor中创建这样一个表达式时,它会将我的表达式转换为:

为此(使用当前日期作为值):

在我单击并再次选择“请求”选项卡之后

还有其他人遇到过这个问题吗?这是一个Xcode 5错误,还是我遗漏了什么

(whenRead属性标记为可选,并且具有日期类型。)

编辑:

我应该补充一点,当我以编程方式创建这个谓词时,它工作得很好

NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Message"];
[request setPredicate:[NSPredicate predicateWithFormat:@"recipient.userID == %@ AND whenRead == %@", userID, [NSNull null]]];

我认为您可能在IB中遇到了限制。在应用程序启动时,请使用NSManagedObjectModel的以下方法来定义获取请求模板:

setFetchRequestTemplate:forName:

这仍然提供了获取模板的速度,但也提供了设置nil相等的能力。我也会对这件事进行调查;IB应该绝对允许nil值。

不确定,但我建议在谓词编辑器中尝试“0”而不是“nil”。使用“0”也有同样的效果。保留这两个子句,然后添加一个“0”将以前的whenRead子句更改为“is not”,并添加一个新的“is”子句(都带有今天的日期)。FWIW我已将此作为一个bug归档,并且它也可以在Open Radar中获得:太棒了,我本来打算这么做,但从来没有考虑过。谢谢