summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--platform/darwin/src/MGLGeoJSONSource.h23
-rw-r--r--platform/darwin/src/MGLOfflineStorage.h19
-rw-r--r--platform/darwin/src/MGLTypes.h8
-rw-r--r--platform/ios/CHANGELOG.md1
-rw-r--r--platform/macos/CHANGELOG.md1
5 files changed, 35 insertions, 17 deletions
diff --git a/platform/darwin/src/MGLGeoJSONSource.h b/platform/darwin/src/MGLGeoJSONSource.h
index d0c1e0dc67..67c6301bfc 100644
--- a/platform/darwin/src/MGLGeoJSONSource.h
+++ b/platform/darwin/src/MGLGeoJSONSource.h
@@ -7,18 +7,23 @@ NS_ASSUME_NONNULL_BEGIN
@protocol MGLFeature;
/**
+ Options for `MGLGeoJSONSource` objects.
+ */
+typedef NSString *MGLGeoJSONSourceOption NS_STRING_ENUM;
+
+/**
An `NSNumber` object containing a Boolean enabling or disabling clustering.
If the `features` property contains point features, setting this option to
`YES` clusters the points by radius into groups. The default value is `NO`.
*/
-extern NSString * const MGLGeoJSONClusterOption;
+extern MGLGeoJSONSourceOption const MGLGeoJSONClusterOption;
/**
An `NSNumber` object containing an integer; specifies the radius of each
cluster if clustering is enabled. A value of 512 produces a radius equal to
the width of a tile. The default value is 50.
*/
-extern NSString * const MGLGeoJSONClusterRadiusOption;
+extern MGLGeoJSONSourceOption const MGLGeoJSONClusterRadiusOption;
/**
An `NSNumber` object containing an integer; specifies the maximum zoom level at
@@ -26,14 +31,14 @@ extern NSString * const MGLGeoJSONClusterRadiusOption;
less than the value of `MGLGeoJSONMaximumZoomLevelOption` so that, at the
maximum zoom level, the features are not clustered.
*/
-extern NSString * const MGLGeoJSONClusterMaximumZoomLevelOption;
+extern MGLGeoJSONSourceOption const MGLGeoJSONClusterMaximumZoomLevelOption;
/**
An `NSNumber` object containing an integer; specifies the maximum zoom level at
which to create vector tiles. A greater value produces greater detail at high
zoom levels. The default value is 18.
*/
-extern NSString * const MGLGeoJSONMaximumZoomLevelOption;
+extern MGLGeoJSONSourceOption const MGLGeoJSONMaximumZoomLevelOption;
/**
An `NSNumber` object containing an integer; specifies the size of the tile
@@ -41,14 +46,14 @@ extern NSString * const MGLGeoJSONMaximumZoomLevelOption;
buffer as wide as the tile itself. Larger values produce fewer rendering
artifacts near tile edges and slower performance. The default value is 128.
*/
-extern NSString * const MGLGeoJSONBufferOption;
+extern MGLGeoJSONSourceOption const MGLGeoJSONBufferOption;
/**
An `NSNumber` object containing a double; specifies the Douglas-Peucker
simplification tolerance. A greater value produces simpler geometries and
improves performance. The default value is 0.375.
*/
-extern NSString * const MGLGeoJSONToleranceOption;
+extern MGLGeoJSONSourceOption const MGLGeoJSONToleranceOption;
/**
A GeoJSON source.
@@ -71,7 +76,7 @@ extern NSString * const MGLGeoJSONToleranceOption;
@param options An `NSDictionary` of options for this source.
@return An initialized GeoJSON source.
*/
-- (instancetype)initWithIdentifier:(NSString *)identifier geoJSONData:(NSData *)data options:(nullable NS_DICTIONARY_OF(NSString *, id) *)options NS_DESIGNATED_INITIALIZER;
+- (instancetype)initWithIdentifier:(NSString *)identifier geoJSONData:(NSData *)data options:(nullable NS_DICTIONARY_OF(MGLGeoJSONSourceOption, id) *)options NS_DESIGNATED_INITIALIZER;
/**
Returns a GeoJSON source with an identifier, URL, and dictionary of options for
@@ -85,7 +90,7 @@ extern NSString * const MGLGeoJSONToleranceOption;
@param options An `NSDictionary` of options for this source.
@return An initialized GeoJSON source.
*/
-- (instancetype)initWithIdentifier:(NSString *)identifier URL:(NSURL *)url options:(nullable NS_DICTIONARY_OF(NSString *, id) *)options NS_DESIGNATED_INITIALIZER;
+- (instancetype)initWithIdentifier:(NSString *)identifier URL:(NSURL *)url options:(nullable NS_DICTIONARY_OF(MGLGeoJSONSourceOption, id) *)options NS_DESIGNATED_INITIALIZER;
/**
Returns a GeoJSON source with an identifier, features dictionary, and dictionary
@@ -98,7 +103,7 @@ extern NSString * const MGLGeoJSONToleranceOption;
@param options An `NSDictionary` of options for this source.
@return An initialized GeoJSON source.
*/
-- (instancetype)initWithIdentifier:(NSString *)identifier features:(NSArray<id<MGLFeature>> *)features options:(nullable NS_DICTIONARY_OF(NSString *,id) *)options NS_DESIGNATED_INITIALIZER;
+- (instancetype)initWithIdentifier:(NSString *)identifier features:(NSArray<id<MGLFeature>> *)features options:(nullable NS_DICTIONARY_OF(MGLGeoJSONSourceOption,id) *)options NS_DESIGNATED_INITIALIZER;
#pragma mark Accessing a Source’s Content
diff --git a/platform/darwin/src/MGLOfflineStorage.h b/platform/darwin/src/MGLOfflineStorage.h
index 211135f84f..c6676cf0bd 100644
--- a/platform/darwin/src/MGLOfflineStorage.h
+++ b/platform/darwin/src/MGLOfflineStorage.h
@@ -24,7 +24,7 @@ NS_ASSUME_NONNULL_BEGIN
alternatively observe KVO change notifications to the pack’s `progress` key
path.
*/
-extern NSString * const MGLOfflinePackProgressChangedNotification;
+extern NSNotificationName const MGLOfflinePackProgressChangedNotification;
/**
Posted by the shared `MGLOfflineStorage` object whenever an `MGLOfflinePack`
@@ -37,7 +37,7 @@ extern NSString * const MGLOfflinePackProgressChangedNotification;
`userInfo` dictionary contains the error object in the
`MGLOfflinePackErrorUserInfoKey` key.
*/
-extern NSString * const MGLOfflinePackErrorNotification;
+extern NSNotificationName const MGLOfflinePackErrorNotification;
/**
Posted by the shared `MGLOfflineStorage` object when the maximum number of
@@ -52,7 +52,12 @@ extern NSString * const MGLOfflinePackErrorNotification;
calling the `-[MGLOfflineStorage removePack:withCompletionHandler:]` method.
Contact your Mapbox sales representative to have the limit raised.
*/
-extern NSString * const MGLOfflinePackMaximumMapboxTilesReachedNotification;
+extern NSNotificationName const MGLOfflinePackMaximumMapboxTilesReachedNotification;
+
+/**
+ A key in the `userInfo` property of a notification posted by `MGLOfflinePack`.
+ */
+typedef NSString *MGLOfflinePackUserInfoKey NS_EXTENSIBLE_STRING_ENUM;
/**
The key for an `NSNumber` object that indicates an offline pack’s current
@@ -60,7 +65,7 @@ extern NSString * const MGLOfflinePackMaximumMapboxTilesReachedNotification;
`MGLOfflinePackProgressChangedNotification` notification. Call `-integerValue`
on the object to receive the `MGLOfflinePackState`-typed state.
*/
-extern NSString * const MGLOfflinePackStateUserInfoKey;
+extern MGLOfflinePackUserInfoKey const MGLOfflinePackStateUserInfoKey;
/**
The key for an `NSValue` object that indicates an offline pack’s current
@@ -69,7 +74,7 @@ extern NSString * const MGLOfflinePackStateUserInfoKey;
`-MGLOfflinePackProgressValue` on the object to receive the
`MGLOfflinePackProgress`-typed progress.
*/
-extern NSString * const MGLOfflinePackProgressUserInfoKey;
+extern MGLOfflinePackUserInfoKey const MGLOfflinePackProgressUserInfoKey;
/**
The key for an `NSError` object that is encountered in the course of
@@ -77,7 +82,7 @@ extern NSString * const MGLOfflinePackProgressUserInfoKey;
an `MGLOfflinePackErrorNotification` notification. The error’s domain is
`MGLErrorDomain`. See `MGLErrorCode` for possible error codes.
*/
-extern NSString * const MGLOfflinePackErrorUserInfoKey;
+extern MGLOfflinePackUserInfoKey const MGLOfflinePackErrorUserInfoKey;
/**
The key for an `NSNumber` object that indicates the maximum number of
@@ -87,7 +92,7 @@ extern NSString * const MGLOfflinePackErrorUserInfoKey;
`-unsignedLongLongValue` on the object to receive the `uint64_t`-typed tile
limit.
*/
-extern NSString * const MGLOfflinePackMaximumCountUserInfoKey;
+extern MGLOfflinePackUserInfoKey const MGLOfflinePackMaximumCountUserInfoKey;
/**
A block to be called once an offline pack has been completely created and
diff --git a/platform/darwin/src/MGLTypes.h b/platform/darwin/src/MGLTypes.h
index a3ea587add..a1367e2d61 100644
--- a/platform/darwin/src/MGLTypes.h
+++ b/platform/darwin/src/MGLTypes.h
@@ -21,7 +21,7 @@
NS_ASSUME_NONNULL_BEGIN
/** Indicates an error occurred in the Mapbox SDK. */
-extern NSString * const MGLErrorDomain;
+extern NSErrorDomain const MGLErrorDomain;
/** Error constants for the Mapbox SDK. */
typedef NS_ENUM(NSInteger, MGLErrorCode) {
@@ -97,3 +97,9 @@ NS_ASSUME_NONNULL_END
#define NS_MUTABLE_DICTIONARY_OF(ObjectClass...) NSMutableDictionary
#endif
#endif
+
+#if !defined(FOUNDATION_SWIFT_SDK_EPOCH_AT_LEAST) || !FOUNDATION_SWIFT_SDK_EPOCH_AT_LEAST(8)
+ #define NS_STRING_ENUM
+ #define NS_EXTENSIBLE_STRING_ENUM
+ #define NSNotificationName NSString *
+#endif
diff --git a/platform/ios/CHANGELOG.md b/platform/ios/CHANGELOG.md
index bc6a8145ee..b552deccbd 100644
--- a/platform/ios/CHANGELOG.md
+++ b/platform/ios/CHANGELOG.md
@@ -76,6 +76,7 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONT
### Other changes
* As the user zooms in, tiles from lower zoom levels are scaled up until tiles for higher zoom levels are loaded. ([#5143](https://github.com/mapbox/mapbox-gl-native/pull/5143))
+* Notification names and user info keys are now string enumeration values for ease of use in Swift. ([#6794](https://github.com/mapbox/mapbox-gl-native/pull/6794))
* MGLMapDebugOverdrawVisualizationMask no longer has any effect in Release builds of the SDK. This debug mask has been disabled for performance reasons. ([#5555](https://github.com/mapbox/mapbox-gl-native/pull/5555))
* Fixed a typo in the documentation for the MGLCompassDirectionFormatter class. ([#5879](https://github.com/mapbox/mapbox-gl-native/pull/5879))
diff --git a/platform/macos/CHANGELOG.md b/platform/macos/CHANGELOG.md
index 388eb07b04..9f08e5de9d 100644
--- a/platform/macos/CHANGELOG.md
+++ b/platform/macos/CHANGELOG.md
@@ -53,6 +53,7 @@
### Other changes
* Fixed an issue where the map view’s center would always be calculated as if the view occupied the entire window. ([#6102](https://github.com/mapbox/mapbox-gl-native/pull/6102))
+* Notification names and user info keys are now string enumeration values for ease of use in Swift. ([#6794](https://github.com/mapbox/mapbox-gl-native/pull/6794))
* Fixed a typo in the documentation for the MGLCompassDirectionFormatter class. ([#5879](https://github.com/mapbox/mapbox-gl-native/pull/5879))
## 0.2.1 - July 19, 2016