使用 __IPHONE_OS_VERSION_MIN_REQUIRED 而不进行比较
Use of __IPHONE_OS_VERSION_MIN_REQUIRED without comparison
在 AFNetworking 2.0 中,NSHTTPSessionManager.h 具有以下代码:
#if __IPHONE_OS_VERSION_MIN_REQUIRED
#import <MobileCoreServices/MobileCoreServices.h>
#else
#import <CoreServices/CoreServices.h>
#endif
使用 __IPHONE_OS_VERSION_MIN_REQUIRED 时未指定要比较的版本。为什么?是因为这个宏是在Core Services framework改成MobileCoreServices.h的时候定义的吗?
这是检查设备是 iOS 设备还是 OS X 设备。 MobileCoreServices
用于 iOS 而 CoreServices
用于 OS X.
__IPHONE_OS_VERSION_MIN_REQUIRED
仅在 iOS 上定义,这就是它起作用的原因。另一个检查是 MAC_OS_X_VERSION_MIN_REQUIRED
,它仅在 OS X 上定义,因此可以以相反的方式使用。
这是一张空头支票,不应该这样做。应该为每个平台创建单独的框架。我猜他们这样做是因为它可能会节省一些硬盘 space,因为框架的其余部分可能几乎相同。
在 AFNetworking 2.0 中,NSHTTPSessionManager.h 具有以下代码:
#if __IPHONE_OS_VERSION_MIN_REQUIRED
#import <MobileCoreServices/MobileCoreServices.h>
#else
#import <CoreServices/CoreServices.h>
#endif
使用 __IPHONE_OS_VERSION_MIN_REQUIRED 时未指定要比较的版本。为什么?是因为这个宏是在Core Services framework改成MobileCoreServices.h的时候定义的吗?
这是检查设备是 iOS 设备还是 OS X 设备。 MobileCoreServices
用于 iOS 而 CoreServices
用于 OS X.
__IPHONE_OS_VERSION_MIN_REQUIRED
仅在 iOS 上定义,这就是它起作用的原因。另一个检查是 MAC_OS_X_VERSION_MIN_REQUIRED
,它仅在 OS X 上定义,因此可以以相反的方式使用。
这是一张空头支票,不应该这样做。应该为每个平台创建单独的框架。我猜他们这样做是因为它可能会节省一些硬盘 space,因为框架的其余部分可能几乎相同。