ReactiveSwift 简单使用

记录 ReactiveSwift 简单使用

  1. 导入 ReactiveSwift 库
  2. 创建 TestViewModel 文件
c 复制代码
enum JKTypeType: Int {
    case cloud
    case device
    case weater
}

// 通过监听属性变化
class TestViewModel: NSObject {
    
    lazy var recordType: Property<JKTypeType> = {
        return Property(recordTypeProperty)
    }()
    
    private(set) var recordTypeProperty: MutableProperty<JKTypeType> = MutableProperty(.device)

    deinit {
        print("TestViewModel delloc")
    }
}

extension TestViewModel {
    
    func setRecordType(_ type: JKTypeType) {
        recordTypeProperty.value = type
    }
    
}
  1. 使用 TestViewModel
c 复制代码
class RegisterVC: UIViewController {
	var testViewModel =  TestViewModel()
    
    let disposes: CompositeDisposable = CompositeDisposable()

	override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = UIColor.white
        bindViewModel()
    }

	func bindViewModel() {
         disposes += testViewModel.recordType.signal.observeValues { type in
            print("testViewModel: \(type)")
        }
    }


	@IBAction func backClick(_ sender: Any) {
        testViewModel.setRecordType(.cloud)
     }
}

	deinit {
        disposes.dispose()
    }
相关推荐
JQShan9 小时前
同步的 defer,异步的陷阱:Swift 并发中加载动画关不掉的调试实录
性能优化·swift
JQShan9 小时前
Swift 多线程通关指南:从 GCD 回调地狱到 Task/Actor 躺赢
swift
Kyln.Wu13 小时前
【python实用小脚本-292】[HR揭秘]手工党点名10分钟的终结者|Python版Zoom自动签到+名单导出加速器(建议收藏)
开发语言·python·swift
大熊猫侯佩16 小时前
Swift 6.2 列传(第十四篇):岳灵珊的寻人启事与 Task Naming
swift·编程语言·apple
大熊猫侯佩16 小时前
SwiftUI 涨知识:如何按条件动态切换 Toggle 视图的样式(.button 或 .switch)
swiftui·swift·apple
初级代码游戏3 天前
iOS开发 SwiftUI Text的基本用法
ios·swiftui·swift
Haha_bj5 天前
Swift——高阶函数(map、filter、reduce、forEach、sorted、contains……)
ios·app·swift
妮妮分享5 天前
维智地图如何集成
开发语言·ios·swift
汉秋5 天前
告别 GeometryReader:SwiftUI .visualEffect 实战解析
swiftui·swift