为 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 中对象的身份检查器,它应该如下所示:

如果没有设置,那就是问题所在。