Update code to work for Xcode 10b1 (#4729)
* Update code to work for Xcode 10b
* Update README and test scripts to mention that Xcode 7 is no longer supported
diff --git a/objectivec/DevTools/full_mac_build.sh b/objectivec/DevTools/full_mac_build.sh
index 42e4105..c673fcb 100755
--- a/objectivec/DevTools/full_mac_build.sh
+++ b/objectivec/DevTools/full_mac_build.sh
@@ -244,8 +244,7 @@
exit 10
;;
7.* )
- echo "ERROR: The unittests include Swift code that is now Swift 3.0." 1>&2
- echo "ERROR: Xcode 8.0 or higher is required to build the test suite, but the library works with Xcode 7.x." 1>&2
+ echo "ERROR: Xcode 7.x no longer supported for building, please use 8.0 or higher." 1>&2
exit 11
;;
8.0* )
diff --git a/objectivec/GPBArray.m b/objectivec/GPBArray.m
index f401631..122e030 100644
--- a/objectivec/GPBArray.m
+++ b/objectivec/GPBArray.m
@@ -2537,12 +2537,12 @@
return [_array countByEnumeratingWithState:state objects:buffer count:len];
}
-- (void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block {
+- (void)enumerateObjectsUsingBlock:(void (NS_NOESCAPE ^)(id obj, NSUInteger idx, BOOL *stop))block {
[_array enumerateObjectsUsingBlock:block];
}
- (void)enumerateObjectsWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block {
+ usingBlock:(void (NS_NOESCAPE ^)(id obj, NSUInteger idx, BOOL *stop))block {
[_array enumerateObjectsWithOptions:opts usingBlock:block];
}
diff --git a/objectivec/GPBDescriptor.m b/objectivec/GPBDescriptor.m
index 83cbce0..ad46ef4 100644
--- a/objectivec/GPBDescriptor.m
+++ b/objectivec/GPBDescriptor.m
@@ -411,7 +411,7 @@
}
- (NSString *)name {
- return @(name_);
+ return (NSString * _Nonnull)@(name_);
}
- (GPBFieldDescriptor *)fieldWithNumber:(uint32_t)fieldNumber {
@@ -582,7 +582,7 @@
}
- (NSString *)name {
- return @(description_->name);
+ return (NSString * _Nonnull)@(description_->name);
}
- (BOOL)isRequired {
@@ -1015,7 +1015,7 @@
}
- (NSString *)singletonName {
- return @(description_->singletonName);
+ return (NSString * _Nonnull)@(description_->singletonName);
}
- (const char *)singletonNameC {
diff --git a/objectivec/GPBDictionary.m b/objectivec/GPBDictionary.m
index aa21670..cedf5e5 100644
--- a/objectivec/GPBDictionary.m
+++ b/objectivec/GPBDictionary.m
@@ -12102,14 +12102,14 @@
}
}
-- (void)enumerateKeysAndObjectsUsingBlock:(void (^)(id key,
+- (void)enumerateKeysAndObjectsUsingBlock:(void (NS_NOESCAPE ^)(id key,
id obj,
BOOL *stop))block {
[_dictionary enumerateKeysAndObjectsUsingBlock:block];
}
- (void)enumerateKeysAndObjectsWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(id key,
+ usingBlock:(void (NS_NOESCAPE ^)(id key,
id obj,
BOOL *stop))block {
[_dictionary enumerateKeysAndObjectsWithOptions:opts usingBlock:block];
diff --git a/objectivec/README.md b/objectivec/README.md
index 110e7f5..21ac07d 100644
--- a/objectivec/README.md
+++ b/objectivec/README.md
@@ -13,7 +13,7 @@
The Objective C implementation requires:
- Objective C 2.0 Runtime (32bit & 64bit iOS, 64bit OS X).
-- Xcode 7.0 (or later).
+- Xcode 8.0 (or later).
- The library code does *not* use ARC (for performance reasons), but it all can
be called from ARC code.