2013-07-23 70 views
0

我想在我的核心数据应用程序中使用谓词。我使用他们整个应用程序没有任何问题,除了这一个:NSDate谓词抛出'无法解析格式字符串'错误

NSPredicate *matchDatePredicate = [NSPredicate predicateWithFormat:@"ANY matches.matchDate < %@", datePlusOne]; 

这引发以下错误: “无法解析格式字符串‘ANY matches.matchDate <%@’”

在不同的视图控制器,以下工作:

NSPredicate *matchDatePredicate = [NSPredicate predicateWithFormat:@"ANY matchDate < %@", self.match.matchDate]; 

的datePlusOne是一个NSDate属性,是self.match.matchDate。我尝试过使用>,> =,=,==等格式化字符串的各种版本,并且每次都得到相同的错误。

我是否错过了这里真的很明显?

编辑:这是被查询的核心数据实体。谓词是从MatchStarts搜索到匹配:

enter image description here

+2

只是一个疯狂的猜测:“匹配”是谓词格式字符串中的保留字 - 可以创建解析错误吗? – Monolo

+0

是的!谢谢!我没有意识到保留字。我通过使用'#matches.matchDate'解决了这个问题,如文档中所示:https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html – aritchie

回答

1

两个谓词是不同的,因为似乎一个包含matches.matchDate而其他只是matchDate。检查它是否有问题。

编辑:任何工作要么匹配必须是多对多关系或matchDate必须是对多关系。
如果两者都是一对一的关系,那么你不能使用任何。

+0

作品用于核心数据实体,该核心数据实体不会查询与另一个实体的实体关系。这应该仍然工作,但不应该呢? – aritchie

+0

检查编辑的答案,如果其问题 –

+0

请参阅我的编辑核心数据实体的屏幕截图。这是一种多对多的关系。 – aritchie