#import "NSArray+MGLStyleAttributeAdditions.h" #import "NSArray+MGLStyleAttributeAdditions_Private.h" #import "MGLStyleAttributeValue_Private.h" #include @interface NSArray(Private) @end @implementation NSArray (MGLStyleAttributeAdditions) - (mbgl::style::PropertyValue>)mbgl_offsetPropertyValue { NSAssert(self.count == 2, @"Offset must contain 2 values (dx, dy)"); NSNumber *dx = self[0]; NSNumber *dy = self[1]; return {{dx.floatValue, dy.floatValue}}; } - (mbgl::style::PropertyValue >)mbgl_paddingPropertyValue { NSAssert(self.count == 4, @"Padding must contain 4 values (top, left, bottom & right)"); NSNumber *top = self[0]; NSNumber *left = self[1]; NSNumber *bottom = self[2]; NSNumber *right = self[3]; return {{top.floatValue, left.floatValue, bottom.floatValue, right.floatValue}}; } - (mbgl::style::PropertyValue >)mbgl_stringArrayPropertyValue { std::vectorfonts; for (NSString *font in self) { fonts.emplace_back(font.UTF8String); } return {{fonts}}; } - (mbgl::style::PropertyValue >)mbgl_numberArrayPropertyValue { std::vectorvalues; for (NSNumber *n in self) { values.emplace_back(n.floatValue); } return {{values}}; } @end