全部,
我已经创建了一个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()
但它没有执行,我错过了什么?
答案 0 :(得分:1)
超过可能的代表是零。添加断点并在该行执行之前检查委托的值。或者改变“?”到一个“!”如果委托是零,它会崩溃,让你知道什么是错的。
您在其他课程中的代码:
var delegate:PayButtonProtocol?
定义名为delegate的变量,类型为PayButtonProtocol?
。
变量delegate
将包含nil,直到您为其指定了内容:
delegate = <someObjectThatConformsToPayButtonProtocol>