diff options
author | Minh Nguyễn <mxn@1ec5.org> | 2015-03-09 17:22:15 -0700 |
---|---|---|
committer | Minh Nguyễn <mxn@1ec5.org> | 2015-03-09 17:22:15 -0700 |
commit | f82de98899a826bd3d5dc935c5a4e8a33c2d9b6b (patch) | |
tree | 63c35f534bfe1d5a55026eda27f6ffedbf14133a | |
parent | 7d06e62363a298320d01b6fee23ae6c6394914d7 (diff) | |
parent | 5162f5d77ecd9f06bc98c441671b4e9da2b437cd (diff) | |
download | qtlocation-mapboxgl-f82de98899a826bd3d5dc935c5a4e8a33c2d9b6b.tar.gz |
Merge pull request #966 from mapbox/hybrid-code-tweaks
refs #935: remove dispatch_once, favor property use, and return immutable styles
-rw-r--r-- | platform/ios/MGLMapView.mm | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/platform/ios/MGLMapView.mm b/platform/ios/MGLMapView.mm index 141d6cae1d..1ab1afcbba 100644 --- a/platform/ios/MGLMapView.mm +++ b/platform/ios/MGLMapView.mm @@ -66,6 +66,7 @@ NSTimeInterval const MGLAnimationDuration = 0.3; @property (nonatomic) UIPinchGestureRecognizer *pinch; @property (nonatomic) UIRotationGestureRecognizer *rotate; @property (nonatomic) UILongPressGestureRecognizer *quickZoom; +@property (nonatomic) NSMutableArray *bundledStyleNames; @property (nonatomic, readonly) NSDictionary *allowedStyleTypes; @property (nonatomic) CGPoint centerPoint; @property (nonatomic) CGFloat scale; @@ -92,9 +93,9 @@ NSTimeInterval const MGLAnimationDuration = 0.3; @end -@implementation MGLMapView { - NSMutableArray *_bundledStyleNames; -} +@implementation MGLMapView + +@synthesize bundledStyleNames=_bundledStyleNames; #pragma mark - Setup & Teardown - @@ -940,27 +941,24 @@ mbgl::DefaultFileSource *mbglFileSource = nullptr; - (NSArray *)bundledStyleNames { - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - if (!_bundledStyleNames) { - NSString *stylesPath = [[MGLMapView resourceBundlePath] stringByAppendingString:@"/styles"]; - - _bundledStyleNames = [[[NSFileManager defaultManager] contentsOfDirectoryAtPath:stylesPath error:nil] mutableCopy]; - - // Add hybrids - NSString *hybridStylePrefix = @"hybrid-"; - NSString *satelliteStylePrefix = @"satellite-"; - NSMutableArray *hybridStyleNames = [NSMutableArray array]; - for (NSString *styleName in _bundledStyleNames) { - if ([styleName hasPrefix:satelliteStylePrefix]) { - [hybridStyleNames addObject:[hybridStylePrefix stringByAppendingString:[styleName substringFromIndex:[satelliteStylePrefix length]]]]; - } + if (!_bundledStyleNames) { + NSString *stylesPath = [[MGLMapView resourceBundlePath] stringByAppendingString:@"/styles"]; + + _bundledStyleNames = [[[NSFileManager defaultManager] contentsOfDirectoryAtPath:stylesPath error:nil] mutableCopy]; + + // Add satellite raster & "hybrid" (satellite raster + vector contours & labels) + NSString *hybridStylePrefix = @"hybrid-"; + NSString *satelliteStylePrefix = @"satellite-"; + NSMutableArray *hybridStyleNames = [NSMutableArray array]; + for (NSString *styleName in _bundledStyleNames) { + if ([styleName hasPrefix:satelliteStylePrefix]) { + [hybridStyleNames addObject:[hybridStylePrefix stringByAppendingString:[styleName substringFromIndex:[satelliteStylePrefix length]]]]; } - [_bundledStyleNames addObjectsFromArray:hybridStyleNames]; } - }); + [_bundledStyleNames addObjectsFromArray:hybridStyleNames]; + } - return _bundledStyleNames; + return [NSArray arrayWithArray:_bundledStyleNames]; } - (void)useBundledStyleNamed:(NSString *)styleName |