乌拉贝尔(Uilabel)试图设置文本时出乎意料地发现了零



我正在编程中创建一个Uiview,该Uiview正在以其自己的init方法中的单独类中的NIB加载:

@IBOutlet weak var label: UILabel! 
override init (frame: CGRect) {
     super.init(frame: frame)
     let xibView = UINib(nibName: "aView", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView
     self.addSubview(xibView)
}

在另一堂课中,我正在调用我的Uiview类,并试图将文本设置为我的标签:

self.aView = AView()
self.aView?.frame = CGRect(x: 0, y: 0, width: 
self.aView?.label.text = "Sample Text"
self.view.bounds.size.width, height: 200)
self.pageScrollView.addSubview(self.aView!)

每当我尝试将"示例文本"设置为uilabel时,我都会遇到错误:

Optional unexpectedly found nil while attempting to unwrap

因此,由于它是从其笔尖加载的,这是因为尚未将视图绘制到视图中,因此它无法将文本设置为标记属性?如果是这样,我该如何修复?

似乎没有保留您的aView。因此,恐怕ARC为您发布了它。

我认为您应该在某个地方向您的AView添加强有力的参考

或您的标签尚未链接到您的XIB文件。

thtyh

您无法访问IBOUTLET,就像您仅通过创建Aview((对象访问其他变量((!

在大多数情况下,此消息出现(相对于IBOutlet(

可选的,在尝试解开包装时意外发现了

当您不连接接口构建器中的IBOutlet时。尝试这样做。应该工作。

最新更新