如何检查我是否正在编译Xcode 15 beta的代码?是否有一个快速的版本检查,我可以做,以确保
override func viewIsAppearing(_ animated: Bool) { }
字符串在Xcode 14.3.1的发布版本上检查ios版本是无用的:的数据
7dl7o3gd1#
由于viewIsAppearing是从Xcode 15开始公开的,但在iOS 13.0之后被标记为可用,因此您需要进行编译时检查,以确定是否应该包含代码,这取决于您是使用Xcode 14还是Xcode 15构建项目。在Objective-C代码中,你可以用途:
viewIsAppearing
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 170000 - (void)viewIsAppearing:(BOOL)animated { [super viewIsAppearing:animated]; } #endif
字符串这将验证Base SDK是否为iOS 17或更高版本。但不幸的是,这不适用于Swift代码。一个Swift解决方案是使用#if swift(>=X)编译器指令,其中“X”是Xcode 15使用的Swift版本。
#if swift(>=X)
#if swift(>=5.9) override func viewIsDisplaying(_ animated: Bool) { super.viewIsDisplaying(animated) } #endif
型Xcode 14.3使用Swift 5.8版本。Xcode 15.0(Beta)使用的是5.9。如果您的应用的部署目标为iOS 12或更早版本,则还需要添加@available(iOS 13.0, *)行。
@available(iOS 13.0, *)
#if swift(>=5.9) // Only include this code in Xcode 15 or later @available(iOS 13.0, *) // Only apply this for iOS 13.0 or later override func viewIsDisplaying(_ animated: Bool) { super.viewIsDisplaying(animated) } #endif
型
1条答案
按热度按时间7dl7o3gd1#
由于
viewIsAppearing
是从Xcode 15开始公开的,但在iOS 13.0之后被标记为可用,因此您需要进行编译时检查,以确定是否应该包含代码,这取决于您是使用Xcode 14还是Xcode 15构建项目。在Objective-C代码中,你可以用途:
字符串
这将验证Base SDK是否为iOS 17或更高版本。但不幸的是,这不适用于Swift代码。
一个Swift解决方案是使用
#if swift(>=X)
编译器指令,其中“X”是Xcode 15使用的Swift版本。型
Xcode 14.3使用Swift 5.8版本。Xcode 15.0(Beta)使用的是5.9。
如果您的应用的部署目标为iOS 12或更早版本,则还需要添加
@available(iOS 13.0, *)
行。型