用于检查 MGLStyleLayer 的 属性 并与字符串进行比较的 Mapbox 表达式

Mapbox Expression to check property of MGLStyleLayer and compare with string

mapView:didFinishLoadingStyle: 方法中,我希望能够检查 MGLSymbolStyleLayer 是否使用特定的 class,类似于我们使用 [=15= 的方式] 在 JSON 样式文件中仅将样式应用于特定 class:

但是,在我的例子中,我想检查并查看地图上是否存在 class,如果它是字符串数组的一部分则将其隐藏:

NSArray *poiTypesExcluded = @[@"airport"];
for (NSString *poiType in poiTypesExcluded) {
        
    layer.visible = [NSExpression expressionWithFormat:@"class != %@", poiType];
        
}

这是给我的错误:

Unable to parse the format string "class != %@ == 1".

关于如何编写 NSExpression 以便能够将 class 属性 与另一个字符串进行比较的任何帮助?

我在这上面浪费了很多时间,结果比我想象的要简单:

NSArray *poiTypesExcluded = @[@"airport", @"grocery", @"bank"];
NSMutableArray *predicates = [[NSMutableArray alloc] init];
for (NSString *poiType in poiTypesExcluded) {
    
    [predicates addObject:[NSPredicate predicateWithFormat:@"class != %@", poiType]];
    
}

symbolLayer.predicate = [NSCompoundPredicate andPredicateWithSubpredicates:predicates];