From ed7623092515f264ab4dc8e8dc7f493ecfd67a6c Mon Sep 17 00:00:00 2001 From: Julian Rex Date: Mon, 11 Jun 2018 15:23:40 -0400 Subject: [ios,macos] Fixed crash in `-[MGLStyle localizeLabelsIntoLocale:]` on iOS 9.3 (#12123) --- platform/darwin/src/MGLVectorTileSource.mm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'platform/darwin') diff --git a/platform/darwin/src/MGLVectorTileSource.mm b/platform/darwin/src/MGLVectorTileSource.mm index e55ed13060..88ddee1d98 100644 --- a/platform/darwin/src/MGLVectorTileSource.mm +++ b/platform/darwin/src/MGLVectorTileSource.mm @@ -109,7 +109,16 @@ static NSArray * const MGLMapboxStreetsAlternativeLanguages = @[ + (NSString *)preferredMapboxStreetsLanguageForPreferences:(NSArray *)preferencesArray { BOOL acceptsEnglish = [preferencesArray filteredArrayUsingPredicate: [NSPredicate predicateWithBlock:^BOOL(NSString * _Nullable language, NSDictionary * _Nullable bindings) { - return [[NSLocale localeWithLocaleIdentifier:language].languageCode isEqualToString:@"en"]; + NSString *languageCode; + + if (@available(iOS 10.0, macOS 10.12.0, *)) { + languageCode = [NSLocale localeWithLocaleIdentifier:language].languageCode; + } + else { + languageCode = [[NSLocale localeWithLocaleIdentifier:language] objectForKey:NSLocaleLanguageCode]; + } + + return [languageCode isEqualToString:@"en"]; }]].count; NSArray *availableLanguages = acceptsEnglish ? MGLMapboxStreetsLanguages : MGLMapboxStreetsAlternativeLanguages; -- cgit v1.2.1