gpt4 book ai didi

swift - 无法从 .xib 文件加载 UIView

转载 作者:行者123 更新时间:2023-11-28 16:13:45 25 4
gpt4 key购买 nike

我正在尝试从 XIB 文件加载 UIView,但它给了我这个错误:

fatal error: init(coder:) has not been implemented: file /Users/Skole-Pc/Desktop/IOS-Apps/CSGO Quiz Battle/AlertView.swift, line 397

这是我的 XIB 文件:

这是与 XIB 文件链接的类:

class HelpAlert: UIView {

@IBOutlet var help1: UIButton!
@IBOutlet var help2: UIButton!
@IBOutlet var help3: UIButton!
@IBOutlet var cancel: UIButton!

override init(frame: CGRect) {
super.init(frame: frame)

}

@IBAction func help1Action(sender: AnyObject) {
let action1 = self.action1
// deliberately set to nil just in case there is a self reference
self.action1 = nil
guard let block = action1 else { return }
block()
}

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
fatalError("init(coder:) has not been implemented")
}

}

通过这种方式,我尝试将 HelpAlert 添加到我的 ViewController 中:

if let alert = NSBundle.mainBundle().loadNibNamed("HelpAlert", owner: self, options: nil).first as? HelpAlert {
alert.frame = CGRect(x: CGRectGetMidX(view.bounds), y: CGRectGetMidY(view.bounds), width: view.bounds.width * 0.9, height: view.bounds.width * 0.9 * (750/650))

view.addSubview(alert)
}

当它给我错误时,我该如何解决?

最佳答案

错误是因为调用了 fatalError() 而产生的。删除此方法并使用编码器调用 super 的 init 版本以获得正确的行为:

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}

关于swift - 无法从 .xib 文件加载 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39309027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com