我正在用Xcode 8.0编写objective代码,以提高API的可用性
if (@available(iOS 11, *)) {
// iOS 11 (or newer) ObjC code
} else {
// iOS 10 or older code
}不幸的是,编译器触发:
未识别的平台名称iOS
为什么?
发布于 2017-10-25 08:23:07
就像我在How to check iOS version?上写的
@available是在Xcode 9中添加的#available是在Xcode 7中添加的如果需要测试Xcode的多个版本的可用性,可以使用#ifdef __MAC_10_13或更好的#if __clang_major__ >= 9检测Xcode 9,如下所示:
#if __clang_major__ >= 9
// Xcode 9+
if (@available(macOS 10.10, iOS 8.0, watchOS 2.0, tvOS 9.0, *)) {
// iOS 8+
}
#else
// Xcode 8-
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber10_9_2) {
// iOS 8+
}
#endif
else {
// iOS 7-
}实际案例示例摘自:https://github.com/ZipArchive/ZipArchive/blob/master/SSZipArchive/SSZipArchive.m
https://stackoverflow.com/questions/46924145
复制相似问题