2016-11-06 40 views
0

我想让ReactiveSwift与Xcode 8.1一起工作。 Xcode声明ReactiveSwift是在3.0以前的Swift版本中编写的(我认为它已更新为Swift 3!)。转换为Swift 3会导致ReactiveSwift swift文件中出现> 50个错误。任何想法如何解决?我使用CocoaPods来添加ReactiveSwift框架。我荚文件....ReactiveSwift无法使用Xcode 8.1。转换为Swift 3导致> 50错误。修复?

Podfile

target 'MyTarget' do 
use_frameworks! 
pod 'ReactiveSwift', :git => 'https://github.com/ReactiveCocoa/ReactiveSwift.git' 
end 
+0

感谢您的回答Rob。我试过了,然后重新安装pod。它告诉我它正在使用ReactiveSwift 1.00-alpha.3和结果3.0.0。 Xcode仍然坚持我转换为Swift 3.我让它按照建议更新。然后生成58错误! – KeithRussell

回答

2

好的我解决了!我将Cocoapods从1.0.1更新到1.2.0.beta.1。遵循@Rob和voila建议的流程!没有错误。经过ReactiveCocoa 5.0和稀疏文档(到目前为止)的主要语法修改后,我得到了UI绑定测试,使用标签和文本字段以及..... textField.reactive.continuousTextValues.observeValues {text in self.label .text = text as String!} .....感谢@Rob的帮助和支持!

2

随着CocoaPod 1.1.1时,Xcode 8.1和斯威夫特3,如果我做下面的步骤,它工作正常:

  1. pod repo update(你只需要做一次)
  2. 从Swift 3项目开始。
  3. pod init
  4. ReactiveCocoa一行到我的Podfile
  5. pod install,它抓住了(现在)ReactiveSwift(1.0.0-alpha.3)和结果(3.0.0)。
  6. 打开.xcworkspace

我可以得到你描述的行为的唯一方法是如果我尝试将它添加到没有任何Swift代码的Objective-C项目。在这种情况下,看起来当你启动工作区时,它不会找到传统版本设置(因为根本没有Swift构建设置!),并且错误地认为它必须进行转换。但是,如果我在执行上述步骤之前添加一个Swift文件到我的项目中,它工作正常。

+0

感谢您花时间做到这一点。我回去了,并确定创建了一个新的快速项目。同样的结果。 58反应错误 - 很多“参数标签”(错误:)'不匹配任何可用的重载。还有4个reactivecocoa错误。我的Xcode 8.1(8B62)中可能有坏设置? – KeithRussell

+0

我翻看了我的构建设置。很多人都知道他们应该做什么!三引起了我的注意....总是将嵌入Swift标准库设置为“否”,安装Object-C兼容性标头设置为“是”,并且使用传统Swift语言版本为设置为“未指定”。听起来对吗? – KeithRussell

+0

FWIW,我也使用Xcode 8.1(8B62),我只是创建空白的iOS“单一视图应用程序”,选择Swift,关闭项目,执行上面的步骤,它的工作原理。无需更改设置。我确实收到了一条消息,建议我更新为推荐的设置,但确实如此,它仍然有效。 – Rob

相关问题