你總是可以得到利用NSDateFormatter
日期爲字符串(或簡單的description
方法),並做特定的字符串進行檢查。但爲此,您將不得不從商店獲取所有對象,效率非常低。 相反,您可以創建另一個關係(或自定義屬性)到Date
實體,該實體將具有日,月和年的信息。 (你可以把它和日期屬性一起或沒有它)。然後,可以很容易地編寫謂詞,無論您嘗試執行哪種類型的搜索 - 月份,日期或日期。
並且爲了設置和獲取屬性,您可以在實體的NSManagedObject
子類中使用自定義方法。
對於例如:如果你的實體是Event
它看起來像
事件
- 易名
- EDATE (另一個實體EVENTDATE - 一對一的關係)
和EventDate
看起來像
EVENTDATE
然後使用日期
-(void)setEDateUsingDate:(NSDate *)date{
//gather current calendar
NSCalendar *calendar = [NSCalendar currentCalendar];
//gather date components from date
NSDateComponents *dateComponents = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:date];
//set date components
self.eDate.day=[dateComponents day];
self.eDate.month=[dateComponents month];
self.eDate.year=[dateComponents year];
}
設置和獲取日期將是
-(NSDate *)dateFromEDate{
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setDay:self.eDate.day];
[components setMonth:self.eDate.month];
[components setMonth:self.eDate.year];
NSDate *date = [calendar dateFromComponents:components];
return date;
}
通過自由文本,它包括一天也? – Rakesh