【发布时间】:2018-05-08 12:30:11
【问题描述】:
我正在尝试在一个测试项目中使用 Bond 来实现 MVVM 模式。
想法很简单:
- 定义 viewModel 然后使用的抽象。
- 从这个抽象中创建一个具体类型。
- 在 viewModel 中注入这个具体类型。
这是我目前的代码:
// 1.
protocol Commentable {
var id: Int { get }
var name: String { get }
var body: String { get }
}
// 2.
struct Comment: Commentable {
var id: Int
var name: String
var body: String
}
// 3.
struct CommentViewModel {
private let comment: Commentable
init(comment: Commentable) {
self.comment = comment
}
public var id: Observable<Int> {
return self.comment.id
}
}
当我尝试return self.comment.id 时,Xcode 显示以下错误:
无法将“Int”类型的返回表达式转换为返回类型 '属性
这是有道理的 - comment.id 是 Int 而self.id 是 Observable<Int>。但是如何使它工作,因为我不想将Comment 类型中的属性定义为Observable。
【问题讨论】: