这个最小的 UITextFieldDelegate 实现中缺少什么导致崩溃?
What is missing from this minimal UITextFieldDelegate implementation, to cause crashing?
在模拟器中选择文本字段时发生崩溃。调试器似乎没有告诉我任何有用的信息。
import UIKit
class TextField: NSObject, UITextFieldDelegate {}
在视图控制器中:
override func viewDidLoad() {
super.viewDidLoad()
textField.delegate = TextField()
}
@IBOutlet weak var textField: UITextField! // assigned in IB.
您不能将委托设置为 TextField()
只需将委托设置为自己,因为您在 class:
中使用了 UITextFieldDelegate
textField.delegate = self
UITextField.delegate 是 unowned,因此委托在 viewDidLoad 返回后被释放。
改为将代理分配给 属性
首先添加 customTextFieldDelegate 作为 属性
var customTextFieldDelegate = TextField()
并在 ViewDidload
self.textField.delegate = self.customTextFieldDelegate
在模拟器中选择文本字段时发生崩溃。调试器似乎没有告诉我任何有用的信息。
import UIKit
class TextField: NSObject, UITextFieldDelegate {}
在视图控制器中:
override func viewDidLoad() {
super.viewDidLoad()
textField.delegate = TextField()
}
@IBOutlet weak var textField: UITextField! // assigned in IB.
您不能将委托设置为 TextField()
只需将委托设置为自己,因为您在 class:
中使用了 UITextFieldDelegatetextField.delegate = self
UITextField.delegate 是 unowned,因此委托在 viewDidLoad 返回后被释放。
改为将代理分配给 属性
首先添加 customTextFieldDelegate 作为 属性
var customTextFieldDelegate = TextField()
并在 ViewDidload
self.textField.delegate = self.customTextFieldDelegate