2013-08-29 107 views
1

這個搜索謂詞不適用於iOS嗎?這同樣似乎在OS X上正常工作。我檢查和date.description返回此格式'2013-08-28 23:18:16 +0000'的字符串。我試圖實現一個UISearchBar來過濾結果,並希望用戶能夠輸入日期的任何部分。此日期謂詞應該工作嗎?

[predicates addObject:[NSPredicate predicateWithFormat:@"date.description contains %@", self.searchString]]; 

感謝

回答

1

號如果它的工作原理是巧合。根據文檔descriptionNSDate僅用於調試目的。

把你的NSString成的NSDate,寫你的謂詞是這樣的:

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
df.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; 
df.dateFormat = @"yyyy-MM-dd HH:mm:ss ZZZ"; 

NSDate *date = [df dateFromString:self.searchString]; 
NSPredicate *p = [NSPredicate predicateWithFormat:@"date == %@", date]; 

編輯:重新閱讀你的問題後,這個答案可能不是非常有幫助。
我會盡量爲每個對象保存[df stringFromDate:date];的結果。那麼你應該可以用一個謂詞來過濾。但是你不能依靠description

+0

謝謝,我這樣做是困難的方式,它遍歷對象的層次結構,並使用NSDateFormatter獲取日期字符串,然後將其與用戶輸入的內容進行比較。我無法將用戶輸入的內容一個日期,因爲他們可以輸入任何字符串來搜索任何字段。 –