【问题标题】:Swift 3 Parameter: single variable, two typesSwift 3 参数:单变量,两种类型
【发布时间】:2017-02-03 21:21:47
【问题描述】:

有人知道有没有办法让参数有两种类型?

比如对于函数:

func email(from viewcontroller : (UIViewController, MFMailComposeViewControllerDelegate) {

}

【问题讨论】:

标签: swift delegates


【解决方案1】:

泛化你的函数定义:

func email<T>(from viewController : T) where T: UIViewController, T: MFMailComposeViewControllerDelegate {
    // ...
}

【讨论】:

    【解决方案2】:

    在 Swift 4 中

    func email(from viewcontroller : UIViewController & MFMailComposeViewControllerDelegate) {
    }
    

    优雅、简短、直观。

    【讨论】:

    • 除非您尝试使用 CGFloat &amp; Int -- 非协议、非类类型 'CGFloat' 不能在协议约束类型中使用
    猜你喜欢
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 2017-04-27
    • 2020-04-21
    • 1970-01-01
    相关资源
    最近更新 更多