我有一个数组event objects
。该对象有几个属性。其中一个属性是NSDate eve_date
.
现在我想检查该对象数组是否包含某个NSDate d
我正在做以下事情
if([[matches valueForKey:@"eve_date"] containsObject:d]){
NSLog(@"contains object");
}else{
NSLog(@"does not contains object");
}
但这不起作用。谁能帮我 ?
亲切的问候
编辑
好吧,让我更清楚一点。我正在制作一个日历应用程序。我获取了特定月份内的所有事件。我现在需要做的是在我的日历上标记正确的日期。因此我在一个函数中有这个。
NSLog(@"Delegate Range: %@ %@ %d",start,end,[start daysBetweenDate:end]);
self.dataArray = [NSMutableArray array];
self.dataDictionary = [NSMutableDictionary dictionary];
NSDate *d = start;
while(YES){
for (Event *event in matches) {
if([event.eve_date isEqualToDate:d]){
// (self.dataDictionary)[d] = save event title in here
[self.dataArray addObject:@YES]; //place marker on date 'd'
}else{
[self.dataArray addObject:@NO]; // don't place marker
}
}
NSDateComponents *info = [d dateComponentsWithTimeZone:calendar.timeZone];
info.day++;
d = [NSDate dateWithDateComponents:info];
if([d compare:end]==NSOrderedDescending) break;
}
但是现在我在我的一系列事件中循环了 31 次(一个月的休息天数)。(这可能不是最佳实践解决方案???)
我也认为问题在于日期的时间不一样。例如:
eve_date --> 2013-08-13 12:00
d --> 2013-08-13 15:00
所以我可能应该使用 NSDateformatter 只获取没有时间的日期本身?
我对么 ?