我試圖獲取我的實體「MeterReading」,它有兩個屬性,「時間戳」和「閱讀」的結果。 「時間戳」是一個NSDate。我現在試圖用確切的日期獲取對象。使用NSPredicate從NSManagedObjectContect獲取確切NSDate
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"MeterReading" inManagedObjectContext:context];
[request setEntity:entity];
NSLog(@"%f", [self.timestamp timeIntervalSince1970]);
NSPredicate *pre = [NSPredicate predicateWithFormat:@"timestamp == %@", self.timestamp];
NSLog(@"%@", pre);
[request setPredicate:pre];
現在,self.timestamp被傳遞到另一個的ViewController預先,所述的NSLog顯示:
1290264372.210091
的NSPredicate記錄
時間戳== CAST( 311957172.210091,「NSDate」)
第一個問題:爲什麼兩個數字不一樣?
第二個也是更重要的問題:在ManagedContext中,我有四個日期條目。如果我使用「< =」而不是「==」,我確實會得到比我通過的日期更小的日期,包括我想要的日期。爲什麼我不能使用「==」運算符獲取單個日期?這可能與我的日期的精確度有關嗎?
謝謝!
幾乎奏效,謝謝!通過數組提出了一個錯誤,但我手動傳遞了兩個nsdates到謂詞,現在它的工作。 :) – denbec 2010-11-22 10:09:31
哎呀,對不起!雖然,很高興幫助。 – 2010-11-22 15:56:54
請注意,此示例不適用於核心數據。你需要使用這樣的東西:http://zdam.posterous.com/core-data-fetch-by-date – SpaceTrucker 2011-11-13 23:33:06