gpt4 book ai didi

ios - 具有 MVC 模式的遗留 Objective C 代码是否与 RxSwift 共存?

转载 作者:行者123 更新时间:2023-11-28 13:36:10 26 4
gpt4 key购买 nike

我们有一个应用程序,该应用程序具有按照 MVC 模式用 Objective C 编写的庞大代码库。现在我们计划使用 RxSwift(使用 MVVM 模式)为现有应用程序添加新功能/屏幕。这是推荐的方法吗?这两者之间的互操作性有多好?

此外,我们正在考虑分阶段将整个代码库迁移到 RxSwift。我是 RxSwift 的新手。如果其他人毫无问题地实现了这一点,我将无法获得任何帮助。只是想知道我们在这个过程中可能会遇到什么样的问题,需要付出什么样的努力。

是否可以在 RxSwift 中调用 obj c 函数,反之亦然?

最佳答案

RxSwift 和 MVVM 本身并没有指定如何管理屏幕之间的转换。最常见的方法似乎是使用 FlowControllers。这里有个好read熟悉这个概念。

重要的结论是 FlowControllers 对任何屏幕方法都有效,无论是 MVC 还是 MVVM/RxSwift。 但是假设您的 MVC 屏幕(即 viewControllers 和/或 Storyboard的 segues)不依赖于其他屏幕(通过 segues 或 View Controller 推送/弹出等)。如果您想混合使用 MVC 和 MVVM/RxSwift,您很可能需要首先从任何屏幕转换逻辑中剥离 View Controller 。

根据我的经验,保持构建 block 可互换的关键方面是将 react 性仅限于屏幕的 MVVM 绑定(bind)部分。它实际上意味着保持 FlowControllers 非 react 性,以便能够使用为屏幕选择的任何方法。通过稍后这样做,可以更容易地替换 RxSwift,例如 Apple 的 Combine 等其他方法。

关于你的最后一个问题,从 Swift 调用 objective-c 功能没有严格的限制,RxSwift 是无关紧要的。反之亦然,纯 Swift 类和结构无法直接从 objective-c 访问。但是通过适本地利用 FlowControllers 这应该不是什么大问题。如果您采用纯 Swift 方法及其新构造(Codeable 等),一个潜在的挑战可能是共享数据模型/网络 api 等。

关于ios - 具有 MVC 模式的遗留 Objective C 代码是否与 RxSwift 共存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56595499/

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