[英]Protocols and delegate trouble in swift
所有,
我创建了一个swift文件,并在其中放入了一个协议,如下所示:
protocol PayButtonProtocol {
func enablePayButton()
func disablePayButton()
}
我已经使我的viewcontroller符合以下协议:
class ViewController: UIViewController, PayButtonProtocol
我也已经在ViewController中创建了函数,所以它看起来像这样
func enablePayButton() {
println("Button enabled")
PAYBarButton.enabled = true
}
func disablePayButton() {
PAYBarButton.enabled = false
}
在另一个类中,我已经设置了委托,并且想要在按下这样的命令时执行enablePayButton:
var delegate:PayButtonProtocol?
在功能中,我想通过以下方式执行功能之一:
delegate?.enablePayButton()
但它没有执行,我想念什么?
代表很有可能是零。 添加断点并在执行该行之前检查委托的值。 还是更改“?” 改为“!” 如果委托为零,它将崩溃,让您知道出了什么问题。
您在另一类中的代码:
var delegate:PayButtonProtocol?
定义一个名为委托的变量,其类型为PayButtonProtocol?
。
变量delegate
将包含nil,直到您为其分配了一些东西:
delegate = <someObjectThatConformsToPayButtonProtocol>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.