2009-07-08 20 views
1

我想了解如何通過我的CoreData信息並查找具有NSTimeInterval內的createdAt(我的對象的一部分作爲NSDate)的對象。我如何設置?CoreData - NSPredicate格式化的時間範圍(NSTimeInterval)

我看過的文檔上的位置: http://developer.apple.com/documentation/Cocoa/Conceptual/Predicates/predicates.html

但我不會有結果一無所獲。

我是否需要創建兩個時間戳並使用SQL的BETWEEN?

任何幫助將是美好的。

回答

0

首先,檢查一個NSDate是否在NSTimeInterval中是沒有意義的,因爲NSTimeInterval只是指定了一段時間,而不是它的位置。相反,您希望使用兩個單獨的NSDate來指定間隔的開始和結束。

下面是它的樣子(開始時間和結束時間是NSDates)。

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
request.entity = [NSEntityDescription entityForName:@"YourEntityName" inManagedObjectContext:yourContext]; 
NSPredicate *beginningPredicate = [NSPredicate predicateWithFormat:@"createdAt >= %@", beginningTime]; 
NSPredicate *endPredicate = [NSPredicate predicateWithFormat:@"createdAt <= %@", endTime]; 
request.predicate = [NSCompoundPredicate andPredicateWithSubpredicates:[NSArray arrayWithObjects:beginningPredicate, endPredicate, nil]]; 
NSArray *results = [yourContext executeFetchRequest:request error:NULL];