gpt4 book ai didi

ios - Swift 中是否有#ifdef 来区分Xcode 6.4 和Xcode 7 beta?

转载 作者:搜寻专家 更新时间:2023-10-30 22:15:20 25 4
gpt4 key购买 nike

我有一个代码库需要与 Xcode 7 beta 和 Xcode 6.4 兼容。这是因为 Beta 测试和 App Store 构建应该使用编译器和 SDK 的稳定版本构建,但我在用于测试的手机上也有 iOS 9 Beta。

这对 Objective-C 来说不是问题,但现在我添加了一些 Swift,我发现很难保持与两个版本的 Xcode 的兼容性。

我能做什么?

我知道 Swift 有一个 #ifdef 指令,但是有没有可以区分 Swift 1.2 和 2.0 的 #ifdef?除了 DEBUG、os 和 arch,我找不到 Swift 的有效列表。

这是我的意思的一个例子:

#ifdef __IPHONE_9_0
some Swift code that works in Swift 2.0 but won't compile in Swift 1.2
#else
some Swift code that works in Swift 1.2 but won't compile in Swift 2.0
#endif

或者更具体的例子:

public final class MessageParser : NSObject {

#ifdef __IPHONE_9_0
static let sharedHashtagRegex = try! NSRegularExpression(pattern:"(^|\\W)(#|\\uFF03)(\\w*\\p{L}\\w*)", options:[]);
#else
static let sharedHashtagRegex = NSRegularExpression(pattern:"(^|\\W)(#|\\uFF03)(\\w*\\p{L}\\w*)", options:nil, error:nil)!
#endif

// ...
}

最佳答案

不,因为 Swift 规定所有“定义”路径都必须编译。抱歉,#ifdef 的美好时光已经一去不复返了

关于ios - Swift 中是否有#ifdef 来区分Xcode 6.4 和Xcode 7 beta?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31213036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com