Swift代理报错Optional can only be ap

作者: 否极泰来_L | 来源:发表于2017-06-05 16:06 被阅读91次
报错信息

Swift是不允许设置协议的可选的状态,协议声明的方法都是必须实现的。

****解决方案一****

@objc

添加@objc修饰协议。

****解决方案二****

实现所有声明的方法

****我的做法****

在父类中实现声明的方法

    class HLBaseViewController: UIViewController, UIViewCollectEventsDelegate

    func uiView(ClickRefreshWithParams params: AnyObject?) {
        
    }
    
    func uiView(uiView: UIView?, CollectEventsType type: AnyObject?, withParams params: AnyObject?) {
        
    }

在子类中替换掉要实现的方法

    class HomeViewController: HLBaseViewController 
 

    override func uiView(uiView: UIView?, CollectEventsType type: AnyObject?, withParams params: AnyObject?) {
        
        NSLog("789")

    }

相关文章

网友评论

    本文标题:Swift代理报错Optional can only be ap

    本文链接:https://www.haomeiwen.com/subject/zinifxtx.html