NSPredicate (nsdictionary+array+nsdictionary)

Posted

技术标签:

【中文标题】NSPredicate (nsdictionary+array+nsdictionary)【英文标题】:NSPredicate ( nsdictionary+array+nsdictionary) 【发布时间】:2016-08-09 04:54:27 【问题描述】:

我尝试过 NSPredicate,但总是得到响应 0。 检查打击代码并提供您的建议哪里出错了。 源数组:-

CityId = 0;
TreatmentProgramServices =     (
            
        TreatmentServicesId = 9;
        TreatmentServicesName = Coed;
    ,
            
        TreatmentServicesId = 1;
        TreatmentServicesName = Intervention;
    ,
            
        TreatmentServicesId = 3;
        TreatmentServicesName = Residential;
    
);
TreatmentProgrameId = 3;



filterTreatmentServices 是数组计数是:- 3

 NSPredicate* updatePre =  [NSPredicate predicateWithFormat:@"(%K IN %@)",@"TreatmentProgramServices.TreatmentServicesId" ,filterTreatmentServices];

 filterTreatmentService =[soureceArray filteredArrayUsingPredicate:updatePre];

请提出解决方案

【问题讨论】:

NSPredicate* updatePre = [NSPredicate predicateWithFormat:@"TreatmentProgramServices.TreatmentServicesId == %@",@"3"]]; @balkaransingh 它不起作用,因为 TreatmentProgramServices.TreatmentServicesId TreatmentProgramServices 中的问题是其 dic 之后的数组。 请检查答案。 【参考方案1】:

请用这个

  NSArray *filterArray=[soureceArray filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id  _Nonnull evaluatedObject, NSDictionary<NSString *,id> * _Nullable bindings) 
                return [[evaluatedObject valueForKey:TreatmentServicesId]  == 3];
            ]];

【讨论】:

以上是关于NSPredicate (nsdictionary+array+nsdictionary)的主要内容,如果未能解决你的问题,请参考以下文章

使用 NSPredicate 按值过滤 NSDictionary

我可以使用 NSPredicate 作为 NSDictionary 中的键吗

NSDictionary VS NSArray+NSPredicate:哪个更快/推荐

使用 NSPredicate 过滤 NSDictionaries 的 NSArray

使用 NSPredicate 搜索 NSDictionaries 的 NSArray 时没有结果

使用 NSPredicate 过滤 NSDictionary 的 NSMutableArray