ios - 初始化时出现 EXC_BAD_ACCESS 错误(编码器 aDecoder :) line in swift2

标签 ios swift2

init(coder aDecoder:)

我不能完全理解我做错了什么。我尝试删除可选 (?) 但没有结果。

Image showing error after '?' removed

这是我的自定义 View 的总代码:-

class CustomView: UIView {

    var vieww: UIView!

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

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

    func loadViewFromib () -> UIView {
        let bundle = NSBundle(forClass: self.dynamicType)
        let nib = UINib(nibName: NSStringFromClass(self.dynamicType).componentsSeparatedByString(".").last!, bundle: bundle)
        let view = nib.instantiateWithOwner(self, options: nil).first as! UIView
    
        return view
    }

    func setupView() {
        vieww = loadViewFromib()
    
        vieww.frame = CGRectMake(0, 0, 300, 150)
        vieww.center = center
        addSubview(vieww)
    
        /// Adds a shadow to our view
        vieww.layer.cornerRadius = 4.0
        vieww.layer.shadowColor = UIColor.blackColor().CGColor
        vieww.layer.shadowOpacity = 0.2
        vieww.layer.shadowRadius = 4.0
        vieww.layer.shadowOffset = CGSizeMake(0.0, 8.0)
    }

我是 swift 的新手,不知道该怎么做。请帮帮我。

提前致谢。

最佳答案

该错误是由于无限循环造成的,也是由于我没有向 CustomView 提供任何框架。设置断点一步一步找到了。

这是解决方案(CustomView 中的代码):-

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

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

func setupView() {

  // do all your setup for your view here
}

在您的 ViewController 中 ->

lazy var popupView :CustomView = {
    let popupView = CustomView(frame: CGRectMake(0,0,300,150))
    return popupView
}()

这是一个来自 stack overflow 的链接,它消除了我所有的疑虑。

Fatal error: use of unimplemented initializer 'init(coder:)' for class

如果还有疑问可以引用http://www.edwardhuynh.com/blog/2015/02/16/swift-initializer-confusion/。这篇博客一定会消除你所有的疑虑。

希望有人发现这些有用。

关于ios - 初始化时出现 EXC_BAD_ACCESS 错误(编码器 aDecoder :) line in swift2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37672248/

相关文章:

ios - 如何为结构的每个成员分配一个编号? ( swift )

Swift 2 解析 HTML 并查找特定节点

ios - 有没有办法使用 Swift 中的速率属性来倒带音乐?

ios - 在 NSMutableArray 中添加字符串

ios - self.navigationController 分配为 RootViewController 后为空?

ios - CGBitmapContextCreate 无效数据字节/行

string - Swift – 带逗号分隔符的字符串加倍

ios - swift-在ios中使用未声明的类型 'firebase'

ios - OpenGL ES 2.0 到 iPad/iPhone 上的视频

ios - Firebase ios : get list of users by IDs