gpt4 book ai didi

swift - 从 ReactiveCocoa 2.4.7 跳到 ReactiveCocoa 5.0.0

转载 作者:行者123 更新时间:2023-11-30 12:44:03 25 4
gpt4 key购买 nike

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

在 ReactiveCocoa 2.4.7 中,如果我是正确的,我能够观察从 NSObject 继承的值,只要它们具有 dynamic关键词。据我了解,这是为了让用 Objective-C 制作的 RAC 可以访问它。 5.0.0就没有这个东西了吗?我是否必须更改

中的所有变量

dynamic var name:String? = "MyName"

let name:MutableProperty<String?> = MutableProperty("MyName")

这是 5.0.0 中正确的等效项吗?

最佳答案

ReactiveCocoa 2.4.7 是用 ObjC 编写的。是否可以将项目升级到 Swift 3,而无需升级 ReactiveCocoa。

为了使 ReactiveCocoa 2.4.7 在 Swift 3 中工作,您必须进行的所有更改都将归因于 Swift 3 imports ObjC Code compared to how Swift 2 did 方式的变化。 。

请参阅此相关问题。 Converting to Swift 3 renamed my own Objective-C method

关于您的等效问题,答案是"is"和“否”。

否:在 RAC 2.x 中,您可以观察 NSObject 的任何属性。通过RACObserve通过 KVO 工作的宏(在 Swift 中你必须使用 wrapper 作为宏)。为了在 Swift 中使用它,您需要使用 dynamic用于启用 KVO 的属性的关键字。

在 RAC 5.0 中相当于 DynamicProperty<Value> 。但是,正如文档所述:

Use this class only as a last resort! MutableProperty is generally better unless KVC/KVO is required by the API you're using

因此:

是:MutableProperty大多数时候是正确的等价物。但它需要您进行更多更改,并且不会像 RACObserve 那样工作。做过。

RACObserveDynamicProperty ,你只需设置 person.name = "Rudolph" ,以及name的观察者属性(property)将被称为。

MutableProperty ,您必须设置person.name.value = "Rudolph"

关于swift - 从 ReactiveCocoa 2.4.7 跳到 ReactiveCocoa 5.0.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41875949/

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