这里是 ReactiveCocoa 的新手。我有一个(MVVM)视图模型,它代表一个类似新闻提要的页面,收听数据模型属性变化的正确方法是什么?在以下示例中,startUpdate()
不断更新post
. 计算的属性messageToDisplay
并shouldShowHeart
驱动一些 UI 事件。
struct Post {
var iLiked: Bool
var likes: Int
...
}
class PostViewModel: NSObject {
private var post: Post
var messageToDisplay: String {
if post.iLiked { return ... }
else { return .... }
}
var shouldShowHeart: Bool {
return iLiked && likes > 10
}
func startUpdate() {
// network request and update post
}
...
}
在我看来,为了使整个事情具有反应性,我必须听取每个属性Post
和所有计算属性?我看起来不太对劲。