nirasan's tech blog

趣味や仕事の覚え書きです。Linux, Perl, PHP, Ruby, Javascript, Android, Cocos2d-x, Unity などに興味があります。

MagicalRecord で Date の範囲検索

  • Entity エンティティの creationDate 属性に作成日時が入っているものとして、今日作成されたデータを取得する場合
// 今日の0時0分0秒を取得
NSCalendar* calendar = [NSCalendar currentCalendar];
unsigned int flags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
NSDateComponents* components = [calendar components:flags fromDate:[NSDate date]];
NSDate* fromDate = [calendar dateFromComponents:components];

// 明日の0時0分0秒
NSDate* toDate = [fromDate dateByAddingTimeInterval:60*60*24];

// 検索条件の作成と実行
NSPredicate* p = [NSPredicate predicateWithFormat:@"(creationDate >= %@) AND (creationDate < %@)", fromDate, toDate];
Entity* entity = [Entity MR_findFirstWithPredicate:p];