ios - 带有编码器的 UIView init 导致递归

标签 ios swift uiview

我正在尝试将我准备好的 UIView 嵌入到 Storyboard中,它位于 xib 文件中。

到目前为止我所做的是:

class TestUIView : UIView {
    @IBOutlet weak private var firstButton: UIButton!
    @IBOutlet weak private var secondButton: UIButton!

    // MARK - Lifetime

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

        let view = NSBundle.mainBundle().loadNibNamed("TestUIView", owner: self, options: nil).first as! TestUIView

        self.addSubview(view)
    }
}

但由于某种原因,我遇到了错误的内存访问异常。 通过查看堆栈跟踪,我看到了一大堆对 initWithCoder 的调用 http://i.stack.imgur.com/iH6Am.png 我不确定为什么 NSBundle.mainBundle().loadNibNamed 会导致这个,有什么想法吗?

最佳答案

原来我做错的是我准备 .xib 文件的方式,我设置了 View 本身,而不是将文件所有者设置为 TestUIView 类。 更改文件所有者(并重置约束)后,一切正常。

关于ios - 带有编码器的 UIView init 导致递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33982452/

相关文章:

ios - 使图像与相机 View 相同

ios - Split View Controller : Pass data to DetailVC on first load/show

iphone - UITapGestureRecognizer 干扰 UIPinchGestureRecognizer

ios - 从 firebase 存储返回的 url 为零 Swift4

ios - nib 中的 uiview 内容位于容器外部

iphone - 使用dismissModalViewControllerAnimated刷新上一个 View

iphone - 超越 UIView 的交互

ios - 将 Parse.com API 与 Pubnub 结合起来是否是大规模实时消息传递和获取组合工具集的可行选择?

ios - 在 Swift 中对同一个变量使用 weak 和 optional 是多余的吗?

ios - 不显示本地通知横幅