【问题标题】:Swift Protocol How to declare as Generic conformanceSwift 协议如何声明为通用一致性
【发布时间】:2019-02-22 10:24:56
【问题描述】:

您好,我的 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 = (_ value : BaseViewModel) -&gt; Void 有什么问题?这看起来已经正确了。
  • 如果我的回答对你有帮助,你能做到最好吗?

标签: ios swift delegates protocols


【解决方案1】:

你的意思是这样的吗?

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

【讨论】:

    猜你喜欢
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    相关资源
    最近更新 更多