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