我正在尝试使用具有iOS5和iOS4.3风格的库。我遇到的问题是有条件地获得正确的版本,即:

对于iOS5:

#include ios5stuff.h
@implementation
  // do stuff
@end

对于iOS4
#include ios4stuff.h
@implementation
  // do stuff
@end

我可以看到如何有条件地在类的实现块中包括东西,但不在此之外。有人可以建议这样做的最佳方法吗?

最佳答案

您应该能够做到这一点(未经测试):

#import <Availability.h>

#if defined(__IPHONE_5_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_5_0
#import "my_header_for_io5_and_above.h"
#elif defined(__IPHONE_4_3) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_4_3
#import "my_header_for_ios4.3.h"
#else
#error Your SDK is too old ! Need at least 4.3.
#endif

关于iphone - 根据iOS版本有条件地包含标题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7725915/

10-09 09:14