在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框架更改为MobileCoreServices.h时定义的吗?
发布于 2015-04-27 09:31:23
这是一个检查设备是iOS设备还是OS设备。MobileCoreServices在iOS上使用,CoreServices在OS上使用。
__IPHONE_OS_VERSION_MIN_REQUIRED只在iOS上定义,这就是为什么这样做的原因。另一个检查是MAC_OS_X_VERSION_MIN_REQUIRED,它只在OS上定义,因此可以反向使用。
这是个糟糕的检查,不应该做。应该为每个平台创建单独的框架。我猜他们这么做是因为这样可以节省一些硬盘空间,因为框架的其他部分可能几乎相同。
https://stackoverflow.com/questions/29883135
复制相似问题