Ios 在运行时检查基本SDK

Ios 在运行时检查基本SDK,ios,xcode,Ios,Xcode,我正在构建一个库,当使用它的应用程序运行较新的BaseSDK xCode 6、BaseSDK iOS 8.0时,其中一些功能被破坏 当试图修复此问题时,使用旧SDK构建的应用程序将被破坏。xCode 5,基本SDK 7.1 它与设备上的版本无关 是否有方法签入代码应用程序设置的基本SDK是什么?您可以使用宏。正如rckoenes在本文中所描述的,您可以使用宏IPHONE 7 0来了解您正在使用iOS 7.0 SDK进行编译。对于iOS 8.0 SDK,您当然可以使用u_IPHONE_8_0宏。这

我正在构建一个库,当使用它的应用程序运行较新的BaseSDK xCode 6、BaseSDK iOS 8.0时,其中一些功能被破坏

当试图修复此问题时,使用旧SDK构建的应用程序将被破坏。xCode 5,基本SDK 7.1

它与设备上的版本无关


是否有方法签入代码应用程序设置的基本SDK是什么?

您可以使用宏。正如rckoenes在本文中所描述的,您可以使用宏IPHONE 7 0来了解您正在使用iOS 7.0 SDK进行编译。对于iOS 8.0 SDK,您当然可以使用u_IPHONE_8_0宏。这些宏在Availability.h标头中定义


另外,请务必阅读以了解有关使用多个SDK的更多信息。

问题在于我正在创建一个库。这些标志是在我构建它时设置的,不受使用库的应用程序的影响。如果我使用基本SDK 8.0构建库,则即使应用程序是使用基本SDK 7.1构建的,它也会进入ifdef\uuuuIphone\u8\u0。SDK 7.1没有定义\uuuIphone\u8\u0宏。你确定你的意思不是说它只会在iOS 7.1设备上输入这个,而是用SDK 8.0构建的吗?不,库是为8.0构建的,代码中包含宏,应用程序是为7.1构建的。在8.0设备上运行时,我希望库“输入”7.1代码,因为应用程序是为其构建的。但它输入的是8.0代码,输入该代码是有意义的,因为这是一个宏,在编译时解析,如果您使用8.0 SDK编译库,它将始终输入该代码。您必须修改库,但是您所说的没有意义。你是说你正在用8.0 SDK构建库,然后用7.1 SDK构建整个应用程序?这不会导致链接器错误吗?没有链接器错误。我不希望我的库有两个版本,一个用于7.1版本的应用程序,另一个用于8.0版本的应用程序。这就是为什么我试图找到一种方法来了解应用程序的目标sdk。