RxSwift订阅数据模型属性更改的正确方法

时间:2018-03-10 19:02:45

标签: ios swift mvvm rx-swift

这里是RxSwift的新手。我有一个(MVVM)视图模型,它代表类似新闻源的页面,订阅数据模型属性更改的正确方法是什么?在以下示例中,startUpdate()会不断更新post。计算出的属性messageToDisplayshouldShowHeart会驱动一些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的所有属性和所有计算属性转换为Variable?它对我来说并不合适。

1 个答案:

答案 0 :(得分:0)

//类NetworkRequest或任何名称

OleDbDataAdapter da = new OleDbDataAdapter("SELECT Column4 FROM Table WHERE Column1 ='" + textBox1.Text + "', Column2 ='" + textBox2.Text + "'AND Column3 ='" + textBox3.Text + "'" , conn);

如果你想改变任何东西,那就使用subscribe,bind,concat ..你可以使用很多方法和属性。