我有一個Struct包含有關檢出書籍的信息。當用戶刪除或添加書籍時,我使用did set方法來計算數組中的書籍總數,然後將總數設置爲另一個班級中的標籤。問題是,當我嘗試將數字設置爲標籤時,我一直收到一個「nill,同時展開可選值」我檢查了此處發佈的其他問題並嘗試解決此問題,但我無法解決我不確定我是否做財產以後錯誤或者也許我的故事板設置錯誤Swift:UILabel無解包裝
的ViewController持有的結構和數組,並使用didSet進行監視的陣列
let NewLabel = ViewControllerExtension()
var ServiceReportArray = [ServiceReport](){
didSet{
let sum : [Int] = ServiceReportArray.map{return$0.NumberOfBooks}
let totalSum = sum.reduce(0){return $0 + $1}
NewLabel.BooksLabel.text = String(totalSum)
//NewLabel.Myreload()
// This function returns the same error
}
}
這是我的標籤是在類中的變化並創建了Myreload()函數來調用,而不是僅從didSet中輸入信息,但仍然會出現錯誤。
class ViewControllerExtension : UIViewController{
@IBOutlet weak var BooksLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
func Myreload(){
let sum : [Int] = ServiceReportArray.map{return $0.NumberOfBooks}
let totalSum = sum.reduce(0){return $0 + $1}
BooksLabel.text = String(totalSum)
}
}
試用UILabel? –
@NaumanMalik試過它已經不起作用,這可能是因爲我在另一個視圖控制器內使用容器視圖的視圖控制器。 – user3220141