[英]Swift error : value of optional type 'Double?' not unwrapped
[英]Swift: ProtocolDelegate optional value error
我想将一些任务委托给AcceptController,但是我在'SendController'内部的委托属性始终返回nil,因此将永远不会执行委托。 我只是不知道为什么我的委托属性'übergabeDelegate'总是返回nil。
protocol ÜbergabeDelegate {
func übergebeText(text: String)
}
class SendController: UIViewController {
@IBOutlet weak var textField: UITextField!
var übergabeDelegate: ÜbergabeDelegate?
@IBAction func save(_ sender: UIButton) {
if let text = textField.text {
if übergabeDelegate != nil {
übergabeDelegate!.übergebeText(text: text)
} else {
print("\nübergabeDelegate is nil\n")
}
}
}
}
class AcceptController: UIViewController {
@IBOutlet weak var label: UILabel!
let sendController = SendController()
override func viewDidLoad() {
super.viewDidLoad()
sendController.übergabeDelegate = self
//print("Delegate gesetzt")
}
}
extension AcceptController: ÜbergabeDelegate {
func übergebeText(text: String) {
label.text = "\(text)"
}
}
我希望标签显示我在SendController上提供的输入,但是标签的文本永远不会实际更改。
在viewDidLoad
内部, let sendController = SendController()
创建一个局部变量。 viewDidLoad
返回后,将释放sendController
。 设置sendController
为的属性AcceptController
,当你分配给它,因为委托将持续SendController
对象之后不会被释放viewDidLoad
的回报。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.