2015-10-20 58 views
0

我正在使用coredata,我想在coredata中找到最大時間。 我該怎麼寫?NSPredicate與swift2的最大時間

let predicate = NSPredicate(format: "contentDate = '???' ", "") 
    fetchRequest.predicate = predicate 

回答

2

正如韋恩說,找到最大的價值,你寧願定義SortDescriptor然後Predicate

let sortByTimeDescriptor = NSSortDescriptor(key: "time", ascending: false) 
fetchRequest.sortDescriptors = [sortByTimeDescriptor] 

你有興趣只是在一個(最大)值,這也是很好的做法,建立性能取極限原因:

fetchRequest.fetchLimit = 1

然後,只需執行請求和來自結果陣列得到第一對象:

let results = managedObjectContext.executeFetchRequest(fetchRequest) 
let maxTimeEntity = results.first 

請注意,executeFetchRequest可能會拋出錯誤,您必須以某種方式處理它。

+0

很酷!謝謝你幫了我很多 –

2

要找到最大值,排序和詢問第一個項目比嘗試創建謂詞更有意義。

如果容器對象不重要,您還可以使用@max查看錶達式以自行獲取值。