Iphone 预测
我可以将NSPredicate应用于与日期对应的字典数据的筛选器数组吗Iphone 预测,iphone,arrays,dictionary,nsdate,nspredicate,Iphone,Arrays,Dictionary,Nsdate,Nspredicate,我可以将NSPredicate应用于与日期对应的字典数据的筛选器数组吗 NSPredicate *betweenPredicate =[NSPredicate predicateWithFormat: @"attributeName BETWEEN %@", @[@1, @10]]; NSDictionary *dictionary = @{ @"attributeName" : @5 }; BOOL between = [betweenPredicate evaluateWithObject:
NSPredicate *betweenPredicate =[NSPredicate predicateWithFormat: @"attributeName BETWEEN %@", @[@1, @10]];
NSDictionary *dictionary = @{ @"attributeName" : @5 };
BOOL between = [betweenPredicate evaluateWithObject:dictionary];
if (between)
{
NSLog(@"between");
}
我得到了一个解决方案,设置下面的谓词格式,用于按日期筛选myArray 当阵列中有大量数据时,速度非常快
NSArray *filteredarray = [myArray filteredArrayUsingPredicate:[NSPredicate
predicateWithFormat:@"(EventStartDateForMonthview <= %@) AND
(EventEndDateForMonthview >= %@)", strOndate,strOndate]];
NSArray*filteredarray=[myArray filteredarray使用谓词:[NSPredicate]
谓词格式:@“(EventStartDateFormonView=%@)”,strOndate,strOndate]];
谢谢一旦确定了开始和结束日期范围,请将谓词用作
NSDate * startDate,*endDate;
// Your logic to calculate range
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"(%K <= %@) AND (%K >= %@)",@"attributeName",startDate,@"attributeName",endDate]];
BOOL isContainObjects = [myArray filterArrayUsingPredicate:predicate]count];
NSDate*开始日期,*结束日期;
//计算范围的逻辑
NSPredicate*谓词=[NSPredicate谓词格式:@“(%K=%@)”、@“attributeName”、startDate、@“attributeName”、endDate];
BOOL isContainObjects=[myArray filterArrayUsingPredicate:predicate]count];
看这里:谓词=[NSPredicate谓词格式:@“日期<%@和日期>%@”,maxDate,minDate];我可以直接在字典数组上应用此谓词。NSPredicate中的between
子句在OS X 10.5和更高版本中不在IOS中可用,您可以是EventStartDateFormonView
和EventEndDateFormonView
是NSDate
类型或NSString
?