【问题标题】: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 之后的数组。
  • 请检查答案。

标签: ios objective-c iphone nsarray nspredicate


【解决方案1】:

请用这个

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 2016-01-22
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多