2017-08-02 6 views
0

私は日付属性を持つエンティティを持っています。今は5分以上経過していないエントリだけを検索したいと思っています。コアデータは、5分を超えない要素のみを検索します。

これまでこれを試しました。

let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "ContactRequest") 

// Create a sort descriptor object that sorts on the "title" 
// property of the Core Data object 
let sortDescriptor = NSSortDescriptor(key: "request_time", ascending: true) 

// Set the list of sort descriptors in the fetch request, 
// so it includes the sort descriptor 
fetchRequest.sortDescriptors = [sortDescriptor] 

let originalDate = Date() // "Jun 13, 2016, 1:23 PM" 
let calendar = Calendar.current 
let limitDate = calendar.date(byAdding: .minute, value: -5, to: originalDate, options: []) 

// Create a new predicate that filters out any object that 
// doesn't have a title of "Best Language" exactly. 
let predicate = NSPredicate(format: "request_time > %@", limitDate) 

// Set the predicate on the fetch request 
fetchRequest.predicate = predicate 

ただし、xCodeはcalendar.date(byAdding: .minute, value: -5, to: originalDate, options: [])は利用できません。

答えて

1

あなたはapiが間違っているようです。あなたがoptions代わりのwrappingComponentsを持っている理由私はよく分からない https://developer.apple.com/documentation/foundation/calendar/2293453-date

let limitDate = calendar.date(byAdding: .minute, value: -5, to: originalDate, options: []) 

let limitDate = calendar.date(byAdding: .minute, value: -5, to: originalDate, wrappingComponents: true) 

するにはを参照してくださいに変更します。おそらく、APIはスピーディーなバージョンの変更を持っています

関連する問題