
刚刚开始学用 swift 开发 ios 也想试着用代理模式 结果发现 delegate 总是 nil 烧脑想了好久行不通啊 举个栗子:
protocol speak { func sayHi() } class speakHandler: speak { func sayHi() { print("hello world") } } class person { var speakDelegate: speak? func doSpeak() { self.speakDelegate?.sayHi() } } let me = person() me.doSpeak() 跑在 playgroud 里 speakDelegate 就是 nil , 求大家指教:)
1 byhuang 2016-11-29 14:59:19 +08:00 因为你并没有给 speakDelegate 赋值,告诉它谁是他的代理,那么调用 delegate 的方法肯定是不行的。 加上 me. speakDelegate = speakHandler()就可以了 |