Explorar el Código

Use @available() to check for API availability instead of -respondsToSelector:

Pierre-Olivier Latour hace 6 años
padre
commit
e9fdd19830
Se han modificado 2 ficheros con 3 adiciones y 6 borrados
  1. 0 1
      GCDWebServer.xcodeproj/project.pbxproj
  2. 3 5
      GCDWebServer/Core/GCDWebServer.m

+ 0 - 1
GCDWebServer.xcodeproj/project.pbxproj

@@ -1238,7 +1238,6 @@
 					"-Wno-cstring-format-directive",
 					"-Wno-reserved-id-macro",
 					"-Wno-cast-qual",
-					"-Wno-partial-availability",
 				);
 			};
 			name = Debug;

+ 3 - 5
GCDWebServer/Core/GCDWebServer.m

@@ -415,12 +415,10 @@ static inline id _GetOption(NSDictionary<NSString*, id>* options, NSString* key,
 
 static inline NSString* _EncodeBase64(NSString* string) {
   NSData* data = [string dataUsingEncoding:NSUTF8StringEncoding];
-#if (TARGET_OS_IPHONE && !(__IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_7_0)) || (!TARGET_OS_IPHONE && !(__MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_9))
-  if (![data respondsToSelector:@selector(base64EncodedDataWithOptions:)]) {
-    return [data base64Encoding];
+  if (@available(macOS 10.9, iOS 7.0, tvOS 9.0, *)) {
+    return [[NSString alloc] initWithData:[data base64EncodedDataWithOptions:0] encoding:NSASCIIStringEncoding];
   }
-#endif
-  return [[NSString alloc] initWithData:[data base64EncodedDataWithOptions:0] encoding:NSASCIIStringEncoding];
+  return [data base64Encoding];
 }
 
 - (int)_createListeningSocket:(BOOL)useIPv6