ios - 如何根据ios中的特定键从数组中获取字典

标签 ios objective-c nsdictionary nspredicate

您好,在我的应用程序中,我有一个包含一组字典的数组。每个字典都有三个键值对。三分之二是开始日期和结束日期。现在我想传递一个日期并让它从一个数组中获取一个字典,其中日期将介于开始日期和结束日期之间。如果日期不在开始日期和结束日期的范围内,则必须检查另一个字典并必须获取该字典。任何人都可以帮助我做到这一点。

日期 (DD/MM/YYYY): 13/04/2014

开始日期: 2014 年 3 月 4 日

结束日期:2014 年 4 月 31 日

字典:

NSDictionary *dic=[[NSDictionary alloc]initWithObjectsAndKeys:@"0",@"Scode",@"01-04-2014",@"StartDate",@"15-04-2014",@"EndDate",nil];
NSDictionary *dic1=[[NSDictionary alloc]initWithObjectsAndKeys:@"1",@"Scode",@"16-04-2014",@"StartDate",@"25-04-2014",@"EndDate",nil];    
NSDictionary *dic3=[[NSDictionary alloc]initWithObjectsAndKeys:@"2",@"Scode",@"26-04-2014",@"StartDate",@"30-04-2014",@"EndDate"nil];

结果:

 NSPredicate *predicateName;
 predicateName=[NSPredicate predicateWithFormat: @"StartDate <=%@ && EndDate >=%@",date,date];
 NSArray *arrResult=[tempArray filteredArrayUsingPredicate:predicateName];
 NSMutableArray *arrSearchResults = [[NSMutableArray alloc]initWithArray:arrResult];

如果日期是 1-4-2014 arrSearchResults 是:

({
    EndDate = "15-04-2014";
    StartDate = "01-04-2014";
    SCode = 0;
})

如果日期是 2-04-2014 arrSearchResults 是:

({
    EndDate = "25-04-2014";
    StartDate = "16-04-2014";
    SCode = 1;
})

最佳答案

请检查答案:

    NSMutableArray *arr=[[NSMutableArray alloc]init];

    NSDictionary *dic=[[NSDictionary alloc]initWithObjectsAndKeys:@"0",@"Scode",@"01-04-2014",@"StartDate",@"15-04-2014",@"EndDate",nil];

    NSDictionary *dic1=[[NSDictionary alloc]initWithObjectsAndKeys:@"1",@"Scode",@"16-04-2014",@"StartDate",@"25-04-2014",@"EndDate",nil];

    NSDictionary *dic2=[[NSDictionary alloc]initWithObjectsAndKeys:@"2",@"Scode",@"26-04-2014",@"StartDate",@"30-04-2014",@"EndDate",nil];

    [arr addObject:dic];
    [arr addObject:dic1];
    [arr addObject:dic2];

     NSPredicate *predicateName;
     predicateName=[NSPredicate predicateWithFormat: @"StartDate <=%@ && EndDate >=%@",@"02-04-2014",@"02-04-2014"];
     NSArray *arrResult=[arr filteredArrayUsingPredicate:predicateName];
     NSMutableArray *arrSearchResults = [[NSMutableArray alloc]initWithArray:arrResult];

arrSearchResults 将是结果。

将 02-04-2014 日期替换为您要应用过滤器的日期。

关于ios - 如何根据ios中的特定键从数组中获取字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23098647/

相关文章:

ios - StageWebView、iOS、本地文件

ios - 重新安装应用程序时如何清除通知标记计数

ios - 使用 Alamofire 下载视频会卡住 Swift iOS 中的 UI

ios - 如何从 Objective C 中的另一个值替换 NSDictionary 值?

objective-c - NSHTTPURLResponse allHeaderFields 区分大小写

ios - 使用未声明的类型 'NSEvent'

iOS 应用程序在 map 缩小到最大值时关闭

objective-c - 以编程方式在 PDF 文件中创建链接

objective-c - 同步多个 UITableView 实例的滚动位置

objective-c - NSDictionaray dictionaryWithObjectsAndKeys 添加 NULL 值