在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框架更改为MobileCoreServices.h时定义了此宏?
答案 0 :(得分:1)
检查设备是iOS设备还是OS X设备。 MobileCoreServices
用于iOS,而CoreServices
用于OS X.
__IPHONE_OS_VERSION_MIN_REQUIRED
仅在iOS上定义,这就是为什么这样做的原因。另一项检查是MAC_OS_X_VERSION_MIN_REQUIRED
,它仅在OS X上定义,因此可以反向使用。
这是一个糟糕的检查,不应该做。应该为每个平台创建单独的框架。我猜他们这样做是因为它可能会节省一些硬盘空间,因为框架的其余部分可能几乎相同。