Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift协议如何声明为通用一致性_Ios_Swift_Delegates_Protocols - Fatal编程技术网

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

Ios Swift协议如何声明为通用一致性,ios,swift,delegates,protocols,Ios,Swift,Delegates,Protocols,你好,我对Swift协议有问题 我已经声明了一个名为BaseViewModel的协议 typealias ViewModelCompletionBlock = (_ value : BaseViewModel) -> Void 我有一个名为AViewModel和BViewModel的类,它们符合协议BaseViewModel class AViewModel : NSObject , BaseViewModel class BViewModel : NSObject , BaseVi

你好,我对Swift协议有问题

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

typealias ViewModelCompletionBlock = (_ value : BaseViewModel) -> Void
我有一个名为AViewModel和BViewModel的类,它们符合协议BaseViewModel

class AViewModel : NSObject , BaseViewModel 

class BViewModel : NSObject , BaseViewModel 
现在,我需要声明一个完成块,返回符合协议BaseViewModel的对象

typealias ViewModelCompletionBlock = (_ value : BaseViewModel) -> Void
在objective-C中,我曾经声明过这样的东西

id<BaseViewModel>
id

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

你的意思是这样的吗

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

typealias ViewModelCompletionBlock=(\uValue:BaseViewModel)->Void的问题是什么?这看起来已经对了。如果我的回答对你有帮助,你能做到最好吗?