刚刚开始学用 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()就可以了 |