你好,我对Swift协议有问题
我已经声明了一个名为BaseViewModel的协议
我有一个名为AViewModel和BViewModel的类,它们符合协议BaseViewModel

class AViewModel : NSObject , BaseViewModel

class BViewModel : NSObject , BaseViewModel

现在,我需要声明一个完成块,它返回那些符合协议BaseViewModel的对象
typealias ViewModelCompletionBlock = (_ value : BaseViewModel) -> Void

在objective-C中,我曾经声明
id<BaseViewModel>

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

最佳答案

你是说这样的事吗?

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

关于ios - Swift协议(protocol)如何声明为通用一致性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54824968/

10-13 09:30