

例えばCoreDataで"Data"というエンティティを作成したとして、  
その中にType：DateのAttribute、"day"を作成したとします。  
そして特定の日付(時間は無視します)のdayを引っ張ろうと試みた時に、次のようなコードとなりました。

[code]

    let appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    let PersonContext: NSManagedObjectContext = appDel.managedObjectContext!
    let PersonRequest: NSFetchRequest = NSFetchRequest(entityName: "Data")
    PersonRequest.returnsObjectsAsFaults = false
    let predicate = NSPredicate(format: "%K = ?????", "day", ?????)
    PersonRequest.predicate = predicate
    var results: NSArray! = PersonContext.executeFetchRequest(PersonRequest, error: nil)</code>
    
[/code]

5行目のlet predicateで、?????の部分にどのようなコードを打ち込んで  
目的の日付を検索すれば良いのかわからず、困っています。  
どうすれば、特定の日付をエンティティから引っ張ることが可能でしょうか。

説明不足かもしれませんが、分かる方がいらっしゃれば解説の程宜しくお願い致します。


CC BY-SA 3.0
2015-07-22T02:47:11.943
12560
2015-07-22T07:01:31.767
2015-07-22T05:02:18.137
7362
10622
question
swift coredata
CoreDataのNSPredicateで日付を検索する方法を教えて下さい

[code]

    let calendar :NSCalendar! = NSCalendar(identifier: NSCalendarIdentifierGregorian)
    let targetedDay :NSDate! = calendar.dateWithEra(1, year: 2015, month: 5, day: 12, hour: 0, minute: 0, second: 0, nanosecond: 0)
    let predicate = NSPredicate(format: "SELF.day BETWEEN {%@ , %@}", targetedDay, NSDate(timeInterval: 24*60*60-1, sinceDate: targetedDay))
    
[/code]

例えば、特定の`NSDate`を作って、そこからの24時間-1秒を`BETWEEN`で取るという手があります。`day`の`attribute`には、`SELF.day`を使います。

ミリ秒までデータがあるならば、`SELF.day >= %@ AND SELF.day < %@`で厳密に期間判定をした方が良いです。


CC BY-SA 3.0
2015-07-22T07:01:31.767
12567
2015-07-22T07:01:31.767
5337
12560
answer