您需要删除
<T>
在
ViewModelsCreator
协议和
PlacesListViewModel
班
protocol ViewModelsCreator {
associatedtype T: EditItemViewModelType
func editItemViewModel() -> T
}
class PlacesListViewModel: ViewModelsCreator {
typealias T = EditPlaceViewModel
func editItemViewModel() -> T {
return EditPlaceViewModel()
}
}
您还可以删除typealias并替换
-> T
具有
-> EditPlaceViewModel
在
PlacesListViewModel
班这两种方式都可以,但这更明确。
class PlacesListViewModel: ViewModelsCreator {
func editItemViewModel() -> EditPlaceViewModel {
return EditPlaceViewModel()
}
}