2013-07-23 69 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