summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorJustin R. Miller <incanus@codesorcery.net>2015-03-09 16:32:30 -0700
committerJustin R. Miller <incanus@codesorcery.net>2015-03-09 16:32:30 -0700
commit5162f5d77ecd9f06bc98c441671b4e9da2b437cd (patch)
tree63c35f534bfe1d5a55026eda27f6ffedbf14133a /platform
parent7d06e62363a298320d01b6fee23ae6c6394914d7 (diff)
downloadqtlocation-mapboxgl-5162f5d77ecd9f06bc98c441671b4e9da2b437cd.tar.gz
refs #935: remove dispatch_once, favor property use, and return immutable styles
Diffstat (limited to 'platform')
-rw-r--r--platform/ios/MGLMapView.mm40
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