我正在尝试将使用 Facebook 的 KVOController 的 objc 应用程序移植到 Swift。我一直被鼓励将 RC3 视为另一种更快速的方法。我已经阅读了一些博客,并鼓励我尝试一下。但是很多文档和博客似乎都以套接字和定时器为例。所以我现在有两个简单的问题:
1) 给定一个 objc
片段,如:
[self.KVOController observe: self.site keyPath: @"programs" options: NSKeyValueObservingOptionInitial block:^(id observer, id object, NSDictionary *change) {
[self.tableView reloadData];
}];
用 RC3 API 重写它的简单方法是什么?当 View 卸载时发生的
self.KVOController unobserve: self.site
的 RC3 等效项是什么?2)推荐我使用Carthage来抓取RC3代码。我可以将
Cartfile
与已经使用 cocoa pod 的项目安全地混合使用 Alamofire
和 SwiftyJSON
吗? 最佳答案
免责声明:)
我也是整个 ReactiveCocoa 概念的新手,尤其是 RAC 3。我正在玩新框架来学习,所以我的解决方案可能不是 API 的预期用途。我很乐意收到其他人的反馈并以正确的方式学习。
对于你的第一个问题,我可以想出以下几点:
您可以将要观察的属性定义为 MutableProperty。下面是带有 String 属性的最基本示例。假设你有一个 View 模型,它有一个 String 属性,你想在你的 View Controller 对象中观察它。
ViewModel.swift
class ViewModel {
var testProp = MutableProperty<String>("")
}
ViewController.swift
class ViewController: UIViewController {
private let viewModel = ViewModel()
override func viewDidLoad() {
super.viewDidLoad()
let testPropObserver = viewModel.testProp.producer
testPropObserver.start(next: {value in
println("new value \(value)")
})
viewModel.testProp.value = "you should see this in your log"
}
}
关于swift - 我可以/如何用 RC3 替换我的 KVO 东西?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29956622/