Iphone 预测

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应用于与日期对应的字典数据的筛选器数组吗

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