相关疑难解决方法(0)

我怎么看我正在使用哪个版本的Swift?

我刚刚在Xcode中创建了一个新的Swift项目.我想知道它正在使用哪个版本的Swift.

如何在Xcode或终端中看到我在项目中使用的Swift版本?

terminal xcode swift

515
推荐指数
10
解决办法
17万
查看次数

什么是Swift等效的respondsToSelector?

我用谷歌搜索,但无法找出快速等同于什么respondsToSelector:.

这是我唯一能找到的东西(Swift替代respondsToSelector :)但在我的情况下并不太重要,因为它检查委托的存在,我没有委托我只想检查是否存在新的API或者不在设备上运行时,如果没有回到以前版本的api.

objective-c selector swift

189
推荐指数
10
解决办法
9万
查看次数

如何在同一源文件中有条件地编译特定于版本的Swift(1.2 vs 2.0)代码?

我有一个与我的框架捆绑在一起的Swift演示项目.我想确保演示中的Swift代码与Xcode 6(Swift 1.2)和Xcode 7(Swift 2.0)成功编译,无需用户干预.

由于Swift中只有边缘预处理器支持,如何在编译时确定使用哪个版本的Swift或Xcode来编译代码?

现在,这是重要的细节:

  • 它必须自动工作!
    • 在Xcode 6中打开项目 - >编译Swift 1.2代码.
    • 在Xcode 7中打开项目 - >编译Swift 2.0代码.

没有构建设置或其他需要用户以某种方式指定她正在使用的Swift/Xcode版本的方法.

我一直在想:这是一项微不足道的任务,用Swift怎么可能不可能?

作为一个框架开发人员,这让我感到疯狂,因为Swift项目的成功编译现在完全取决于用户的Xcode版本,我不能要求他们全部"更新到Xcode 6.4",稍后不得不问他们一遍又一遍地"更新到Xcode 7.1".疯了吧!

另一种选择当然是拥有单独的演示项目,管理不同的代码库,每个版本的Swift都有一个.并希望用户知道哪个项目适用于她的Xcode版本.不是一个真正的选择.

遗憾的是,另一种替代方案,即根本不使用任何Swift 2.0的增强功能.有一些语法,类和方法在一个或另一个Swift版本中不起作用,只是因为编译器在较新的Xcode版本中更加挑剔.

xcode preprocessor compilation swift swift2

5
推荐指数
2
解决办法
1348
查看次数

如何在程序中打印出Swift的版本?

如果我使用Mavericks,则仅限于XCode 6.2,以及以下代码:

let setOfNumbers: Set<Int> = [1, 2, 3, 4, 5];
Run Code Online (Sandbox Code Playgroud)

将无法正常工作。因此Set,仅应在Swift 1.2及更高版本中使用。如何打印出程序中正在使用的Swift版本?(就像p RUBY_VERSION使用Ruby一样)

swift swift2

5
推荐指数
2
解决办法
1258
查看次数

哪个版本的swift编译器是默认的Xcode 6.4?

我在使用Xcode 6.4的新机器上进行了一些测试失败,出现此错误:

'NSDictionary' is not implicitly convertible to '[NSObject : AnyObject]'; did you mean to use 'as' to explicitly convert?
Run Code Online (Sandbox Code Playgroud)

在我的机器上(仍在旧的Xcode 6.2上),测试没问题.不幸的是我暂时无法升级我的机器.

关于如何在两个Xcode版本上实现相同行为的任何建议?我怀疑使用了不同的Swift编译器,因为那部分代码根本没有改变......

编辑:找到版本:

  • Swift 1.1版(swift-600.0.57.4) - > Xcode 6.2
  • Apple Swift 1.2版(swiftlang-602.0.53.1 clang-602.0.53) - > Xcode 6.4

xcode ios swift

2
推荐指数
1
解决办法
2270
查看次数