在我的名为Cell的UITableViewCell子类中,我从相应的Xib文件附加的所有IBOutlet均为零,并导致应用程序崩溃,并显示错误线程1:致命错误:意外地发现nil,同时展开了Optional值在我尝试访问IBOutlet属性的行上。 .Xib文件的文件所有者设置为单元,.Xib文件中的UITableViewCell也设置为
代码:
import UIKit
class Cell: UITableViewCell, UICollectionViewDelegate,UICollectionViewDataSource {
@IBOutlet weak var label: UILabel! (CONNECTED TO .XIB FILE)
override func awakeFromNib() {
super.awakeFromNib()
viewDidLoad()
print(label.text)//APP CRASHES HERE!
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 1
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cellId", for: indexPath)
return cell
}
}
答案 0 :(得分:1)
您的内部视图未与文件所有者关联,因此请创建IBOutlet属性。
@IBOutlet private var contentView: UIView!
将其与xib文件的主视图作为参考插座连接。
并在您的自定义类的此功能内
@objc required public init(coder aDecoder: NSCoder) { super.init(coder: aDecoder)! commonInit() // write this to load nib file }
commonInit()
中从捆绑中加载笔尖,并将 contentview 添加为commonInit()