为 CustomUiView 设置委托获取 EXC_BAD_ACCESS
Setting delegate for CustomUiView getting EXC_BAD_ACCESS
我创建了自定义 UIView 并为其设置了协议。现在,当我将委托设置为 self 时,从 View Controller 得到一个 EXC_BAD_ACCESS.
---视图控制器代码------
class VerificationController: UIViewController, LoadingViewDelegate {
@IBOutlet weak var instructionView: LoadingView!
override func viewDidLoad() {
super.viewDidLoad()
instructionView.randomTextIndexes = [1]
instructionView.delegate = self
}
...
}
// "instructionView" is the UIView outlet and "LoadingView" is the class
--这是自定义查看代码------
protocol LoadingViewDelegate {
func generated(random code:String)
}
class LoadingView: UIView {
var delegate:LoadingViewDelegate?
var randomTextIndexes:[Int] = []
}
当我尝试从视图控制器的 viewDidLoad()
方法访问委托以及 randomTextIndexes
时,我得到 EXC_BAD_ACCESS
。你能告诉我我在这里遗漏了什么吗?
我最好的猜测是您忘记在 Interface Builder 中设置自定义视图的 class。检查 IB 中对象的身份检查器,它应该如下所示:
如果没有设置,那就是问题所在。
我创建了自定义 UIView 并为其设置了协议。现在,当我将委托设置为 self 时,从 View Controller 得到一个 EXC_BAD_ACCESS.
---视图控制器代码------
class VerificationController: UIViewController, LoadingViewDelegate {
@IBOutlet weak var instructionView: LoadingView!
override func viewDidLoad() {
super.viewDidLoad()
instructionView.randomTextIndexes = [1]
instructionView.delegate = self
}
...
}
// "instructionView" is the UIView outlet and "LoadingView" is the class
--这是自定义查看代码------
protocol LoadingViewDelegate {
func generated(random code:String)
}
class LoadingView: UIView {
var delegate:LoadingViewDelegate?
var randomTextIndexes:[Int] = []
}
当我尝试从视图控制器的 viewDidLoad()
方法访问委托以及 randomTextIndexes
时,我得到 EXC_BAD_ACCESS
。你能告诉我我在这里遗漏了什么吗?
我最好的猜测是您忘记在 Interface Builder 中设置自定义视图的 class。检查 IB 中对象的身份检查器,它应该如下所示:
如果没有设置,那就是问题所在。