-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Fixed NSLocale.languageCode crash in iOS 9.3 #12123
Conversation
@@ -109,7 +109,9 @@ + (NSString *)preferredMapboxStreetsLanguage { | |||
+ (NSString *)preferredMapboxStreetsLanguageForPreferences:(NSArray<NSString *> *)preferencesArray { | |||
BOOL acceptsEnglish = [preferencesArray filteredArrayUsingPredicate: | |||
[NSPredicate predicateWithBlock:^BOOL(NSString * _Nullable language, NSDictionary<NSString *,id> * _Nullable bindings) { | |||
return [[NSLocale localeWithLocaleIdentifier:language].languageCode isEqualToString:@"en"]; | |||
|
|||
NSString *languageCode = [[NSLocale localeWithLocaleIdentifier:language] objectForKey:NSLocaleLanguageCode]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it possible to wrap in a if #available
statement so when we remove iOS 9 support we also remove this code and keep the latest API?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep we can do that - I'll modify the previous case of this too (that was a historic case).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍🏼
platform/ios/CHANGELOG.md
Outdated
@@ -21,6 +21,7 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONT | |||
* Added custom `-hitTest:withEvent:` to `MGLSMCalloutView` to avoid registering taps in transparent areas of the standard annotation callout. ([#11939](https://github.com/mapbox/mapbox-gl-native/pull/11939)) | |||
* Improved performance and memory impact of `MGLScaleBar`. ([#11921](https://github.com/mapbox/mapbox-gl-native/pull/11921)) | |||
* Fixed race conditions that could cause crashes when re-using `MGLMapSnapshotter` or using multiple snapshotters at the same time. ([#11831](https://github.com/mapbox/mapbox-gl-native/pull/11831)) | |||
* Fixed crash on iOS 9.3 (`NSLocale.languageCode` introduced in iOS 10.0) ([#12123](https://github.com/mapbox/mapbox-gl-native/pull/12123)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should be specific as to how the crash was triggered, so we’ll want to mention -[MGLStyle localizeLabelsIntoLocale:]
(instead of NSLocale
directly).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@friedbunny to avoid waiting more I can fix this changelog in #12086
@@ -16,6 +16,8 @@ | |||
* Adjusted when and how the camera transition update and finish callbacks are called, fixing recursion bugs. ([#11614](https://github.com/mapbox/mapbox-gl-native/pull/11614)) | |||
* Fixed an issue preventing nested key path expressions get parsed accordingly to the spec. ([#11959](https://github.com/mapbox/mapbox-gl-native/pull/11959)) | |||
* Fixed race conditions that could cause crashes when re-using `MGLMapSnapshotter` or using multiple snapshotters at the same time. ([#11831](https://github.com/mapbox/mapbox-gl-native/pull/11831)) | |||
* Fixed crash in `-[MGLStyle localizeLabelsIntoLocale:]` on iOS 9.3 (attempting to access a property that was introduced in iOS 10.0 and used in Darwin code) ([#12123](https://github.com/mapbox/mapbox-gl-native/pull/12123)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/iOS 9.3/macOS 10.11/
s/iOS 10.0/macOS 10.12/
The way we use “Darwin” in this repository is a bit misleading – we don’t actually do any kernel programming – so we avoid mentioning that term in public-facing documentation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good to know - how do we normally reference code that is shared between iOS and macOS? "shared platform code"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated in #12146
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how do we normally reference code that is shared between iOS and macOS
We don’t tend to acknowledge the existence of other platforms in the changelogs.
… iOS 9.3 (#12123) # Conflicts: # platform/ios/CHANGELOG.md # platform/macos/CHANGELOG.md
… iOS 9.3 (#12123) # Conflicts: # platform/ios/CHANGELOG.md # platform/macos/CHANGELOG.md
Fixes #12063 (same bug as #7399)