Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 从ReactiveCocoa 2.4.7跳到ReactiveCocoa 5.0.0_Swift_Reactive Cocoa_Reactive Cocoa 5 - Fatal编程技术网

Swift 从ReactiveCocoa 2.4.7跳到ReactiveCocoa 5.0.0

Swift 从ReactiveCocoa 2.4.7跳到ReactiveCocoa 5.0.0,swift,reactive-cocoa,reactive-cocoa-5,Swift,Reactive Cocoa,Reactive Cocoa 5,我已经接管了一个iOS项目,该项目使用CocoaPods实现了reactiveCocoa2.4.7。该应用程序是在Swift 1.2中编程的,但后来进行了升级,现在是Swift 2.3。但是,ReactiveCocoa尚未更新。 我现在的目标是将应用升级到Swift 3,但要做到这一点,我还必须升级ReactiveCocoa 在ReactiveCocoa 2.4.7中,如果我是正确的,我可以观察从NSObject继承的值,只要它们具有动态关键字。据我所知,这是为了使RAC能够访问Objectiv

我已经接管了一个iOS项目,该项目使用CocoaPods实现了
reactiveCocoa2.4.7
。该应用程序是在Swift 1.2中编程的,但后来进行了升级,现在是Swift 2.3。但是,ReactiveCocoa尚未更新。 我现在的目标是将应用升级到Swift 3,但要做到这一点,我还必须升级ReactiveCocoa

在ReactiveCocoa 2.4.7中,如果我是正确的,我可以观察从NSObject继承的值,只要它们具有
动态
关键字。据我所知,这是为了使RAC能够访问Objective-C中的内容。5.0.0中是否没有这样的内容?我必须从更改所有变量吗

动态变量名称:字符串?=“我的名字”

让name:MutableProperty=MutableProperty(“MyName”)


这是否是5.0.0中的正确等价物?

反应Cocoa 2.4.7是用ObjC编写的。If可以将项目升级到Swift 3,而无需升级

要使ReactiveCocoa 2.4.7在Swift 3中工作,您必须进行的所有更改都是由于方式的更改

看这个相关的问题

关于等价性问题,答案是肯定和否定

否:在RAC 2.x中,您可以通过
RACObserve
宏观察
NSObject
的任何属性,该宏通过KVO工作(在Swift中,您必须对宏使用a)。要在Swift中使用此功能,您需要为属性使用
dynamic
关键字以启用KVO

RAC 5.0中与此等效的是
DynamicProperty
。 然而,正如文件所述:

仅在万不得已的情况下使用本课程
MutableProperty
通常更好,除非您使用的API需要KVC/KVO

因此:

是:
可变属性
在大多数情况下都是正确的等价物。但它需要您进行更多更改,并且不会像
RACObserve
那样工作

使用
RACObserve
DynamicProperty
,只需设置
person.name=“Rudolph”
,即可调用
name
属性的观察者


使用
MutableProperty
,您必须设置
person.name.value=“Rudolph”

对。如果不使用Cocoa部件,您可以安装
ReactiveSwift