diff options
Diffstat (limited to 'platform/darwin/src/NSComparisonPredicate+MGLAdditions.mm')
-rw-r--r-- | platform/darwin/src/NSComparisonPredicate+MGLAdditions.mm | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/platform/darwin/src/NSComparisonPredicate+MGLAdditions.mm b/platform/darwin/src/NSComparisonPredicate+MGLAdditions.mm index 380215ff32..15aa71419d 100644 --- a/platform/darwin/src/NSComparisonPredicate+MGLAdditions.mm +++ b/platform/darwin/src/NSComparisonPredicate+MGLAdditions.mm @@ -115,15 +115,14 @@ return @[op, leftHandPredicate.mgl_jsonExpressionObject, rightHandPredicate.mgl_jsonExpressionObject]; } case NSInPredicateOperatorType: { - NSMutableArray *elements = [NSMutableArray arrayWithObjects:@"match", self.leftExpression.mgl_jsonExpressionObject, nil]; - NSArray *optionsExpressions = self.rightExpression.constantValue; - for (id object in optionsExpressions) { - id option = ((NSExpression *)object).mgl_jsonExpressionObject; - [elements addObject:option]; - [elements addObject:@YES]; - } - [elements addObject:@NO]; - return elements; + + NSExpression *matchExpression = [NSExpression expressionForFunction:@"MGL_MATCH" + arguments:@[self.leftExpression, + self.rightExpression, + [NSExpression expressionForConstantValue:@YES], + [NSExpression expressionForConstantValue:@NO]]]; + + return matchExpression.mgl_jsonExpressionObject; } case NSContainsPredicateOperatorType: { NSPredicate *inPredicate = [NSComparisonPredicate predicateWithLeftExpression:self.rightExpression |