我从核心数据中获取记录并填充NSMutableArray
它们,现在我想用下面的代码过滤它们但不能正常工作。我应该怎么做?
[array filterUsingPredicate:[NSPredicate predicateWithFormat:@"date==%@",date1 ]];
//date = a field with format NSDate in core data
//date1 = NSDate
我从核心数据中获取记录并填充NSMutableArray
它们,现在我想用下面的代码过滤它们但不能正常工作。我应该怎么做?
[array filterUsingPredicate:[NSPredicate predicateWithFormat:@"date==%@",date1 ]];
//date = a field with format NSDate in core data
//date1 = NSDate
你为什么不在你的 NSFetchRequest 中使用谓词并保持 NSArray 只填充你需要的记录?
也许是因为您输入了带有时间的日期,并且当您想要过滤数组时date1
,时间date1
不等于您存储在核心数据中的日期
查看此代码并输入没有时间的日期
NSDate *dateTime=[NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
[calendar setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
NSDateComponents *components = [[NSDateComponents alloc] init];
components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit
fromDate:dateTime];
NSDate *dateOnly = [calendar dateFromComponents:components];