2010-07-18 142 views
2

我在我的核心數據模型中有一個名爲Task的實體。 Task實體具有名爲date的可變形屬性。 date屬性的類是名爲TDate(它符合NSCoding,因此是可變形屬性)的類。 TDate有一個NSInteger類型的屬性,稱爲monthNSFetchRequest謂詞語法

在我的NSFetchRequest我想獲取特定月份的所有Task對象。我用下面的謂詞:

[NSPredicate predicateWithFormat:@"date.month == 7"]

應該讓我在七月份所有Task對象。但是,使用此謂詞,不會返回提取的對象。通過取出謂詞,我可以確認有月份是7月(7月)的Task個對象。我的謂詞語法有什麼問題嗎?

感謝

回答

2

如果您使用的是SQLite的後端,則無法搜索對變形的特性。在SQLite後端,獲取請求的謂詞轉換爲SQL並在SQLite引擎上執行。因爲SQLite不知道Cocoa,所以針對SQLite後端執行的謂詞不能使用可轉換的屬性。

如果您使用的是XML,二進制或內存存儲,則可以使用針對可轉換屬性進行查詢的謂詞,因爲整個對象圖都在內存中,並且使用本機Cocoa進行查詢。

+0

我最終爲'date'對象的每個屬性創建了單獨的屬性。謝謝。 – indragie 2010-07-19 04:21:24