我有一个必须修改 iboutlet 属性的属性观察器代码:
@IBOutlet weak var canYouGuessLbl: UILabel!
var isNewUser: Bool = false {
didSet {
if isNewUser {
canYouGuessLbl!.layer.zPosition = 5
canYouGuessLbl!.hidden = false
} else {
canYouGuessLbl!.hidden = true // Error at this line
}
}
}
这会在运行时崩溃,因为 canYouGuessLbl!似乎为零:
fatal error: unexpectedly found nil while unwrapping an Optional value
我不确定原因以及如何解决这个问题。
请您参考如下方法:
如果您的问题出现在安东尼奥回答的第一个场景中,那么您可以通过将 isNewUser 变量声明为可选变量并在 canYouGuessLbl 完全初始化后在 viewDidLoad 方法上为其赋值来解决它
var isNewUser: Bool! {
didSet(newValue) {
if isNewUser != nil && isNewUser! {
canYouGuessLbl!.layer.zPosition = 5
canYouGuessLbl!.hidden = false
} else if isNewUser != nil && !isNewUser! {
canYouGuessLbl!.hidden = true
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
isNewUser = false
}
