ios - Swift 协议(protocol)如何声明为通用一致性

标签 ios swift delegates protocols

您好,我对 Swift 协议(protocol)有疑问

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

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

class AViewModel : NSObject , BaseViewModel 

class BViewModel : NSObject , BaseViewModel 

现在,我需要声明一个完成 block 来返回那些符合协议(protocol) 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/

相关文章:

ios - 我想使用 swift 添加标签或文本,如下图所示

ios - 如何制作一个圆形的椭圆形按钮?

swift - 我的委托(delegate)函数没有在 Swift 中被调用

ios - 什么时候使用像 (id<UISearchBarDelegate>)self 这样的东西?

ios - 仅在 iPhone 4S 上对委托(delegate)进行错误访问

ios - 为什么在 Swift 中初始化变量时会出现 "Variable used before being initialized"错误?

ios - 如何在我的应用程序中实现 URL Schema?

iOS 设计指南 - 主/第一个选择屏幕的选项卡控件与 ListView

ios - WKWebView 未填充容器 View

objective-c - 委托(delegate)声明 Swift