【发布时间】:2014-08-27 15:18:14
【问题描述】:
我已经使用情节提要将 UILabel 连接到我的 VC,生成一个弱变量但连接到情节提要参考。无论如何,每当我尝试打开它时,我得到的只是一个 nil 值。最让我困惑的是,我可以通过另一种方法访问它。我已经安全地打开了它,它避免了编译器错误,但并没有解决我的问题。
编译器消息是:致命错误:在展开可选值时意外发现 nil
以下是部分代码:
@IBOutlet weak var linesLeftCountLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
skView = SKView(frame: sceneView.frame)
skView.multipleTouchEnabled = false
//Create and configure the scene.
scene = LogoRefactoryScene(size: skView.bounds.size)
scene.scaleMode = .AspectFill
skView.presentScene(scene)
tapGesture = UITapGestureRecognizer(target: self, action: "eraseLine:")
tapGesture.delegate = self
view.addGestureRecognizer(tapGesture)
view.addSubview(skView)
}
在这里我可以访问它:
@IBAction func colorPickerOfColor(sender: UIButton) {
var pickerName = ""
switch sender.tag {
case 0:
pickerName = "green"
case 1:
pickerName = "red"
case 2:
pickerName = "blue"
default:
pickerName = "orange"
}
pickerName += "ColorPicker"
colorPickerView.image = UIImage(named: pickerName)
currentColorName = ColorSelection.fromRaw(sender.tag + 1)!.colorName
let color = ColorSelection.fromRaw(sender.tag + 1)!.getSKColor()
scene.lineColor = color
linesLeftCountLabel.textColor = color
}
这是编译器抱怨的地方:
func lineHasBeenDrawn() {
linesLeftCountLabel.text = "Any String"
}
【问题讨论】:
-
这没有意义..您尝试更改代码可能存在错误,我们需要查看一些代码来帮助您
-
@Heliem 现在我已经发布了整个课程:D 希望对您有所帮助
-
lineHasBeenDrawn()在哪里被调用? -
@Heliem 它是一个委托方法。
-
@Heliem 但只有在所有内容都设置好后才会调用它。所以标签已经实例化了。