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.