Swift协议如何声明为通用一致性

时间:2019-02-22 10:24:57

标签: ios swift delegates protocols

你好,我对Swift协议有疑问

我已经声明了一个名为BaseViewModel的协议

我有一个名为AViewModel和BViewModel的类,它们符合协议BaseViewModel

class AViewModel : NSObject , BaseViewModel 

class BViewModel : NSObject , BaseViewModel 

现在,我需要声明一个完成块,该块返回符合协议BaseViewModel的那些对象

typealias ViewModelCompletionBlock = (_ value : BaseViewModel) -> Void

在Objective-C中,我曾经声明过类似的内容

id<BaseViewModel>

在Swift中,如何声明相同的内容?

1 个答案:

答案 0 :(得分:1)

你的意思是这样吗?

typealias ViewModelCompletionBlock<T: BaseViewModel> = (_ value : T) -> Void