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