IOS Swift使用可重复使用的笔尖文件混淆错误

问题描述:

我想做一个简单的可重用的视图,由于某种原因我得到一个非特定的错误。我正在关注本教程https://www.youtube.com/watch?v=H-55qZYc9qI。如上所述,这是我第一次尝试这个。一切正常编译,但当我去那个视图我得到一个运行时错误。奇怪的是,我完全按照教程进行操作,并得到错误信息。名称是正确的,并且视图连接正确。任何建议IOS Swift使用可重复使用的笔尖文件混淆错误

import UIKit 

class streamShared: UIView { 
    @IBOutlet var view: streamShared! 

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

     UINib(nibName: "streamShared", bundle: nil).instantiate(withOwner: self, options: nil) 
     addSubview(view) 
} 
} 

enter image description here

enter image description here

你也得为自己的无限递归:streamShared.init(coder:)的自称。

我觉得子视图应该是UIView类型:

import UIKit 

// PLEASE name your classes, structs and enums Capitalized! 
class StreamShared: UIView { 

    var view: UIView! 

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

     self.view = UINib(nibName: "streamShared", bundle: nil).instantiate(withOwner: self, options: nil) 
     addSubview(view) 
    } 
} 

而且,在你的XIB文件更改类的主要观点为默认UIView(灰色);否则,当读取xib并实例化其中包含的视图时,StreamShared.init(coder:)仍将被调用。

+1

完美的非常感谢 – user1591668