2015-12-20 24 views
0

Xcode中不斷給我像一些運行時錯誤 「致命錯誤:初始化(編碼器:)尚未實現:文件/.../ myproject.swift」的UIViewController和所需的init(編碼器:)?

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var boardView: UIView! 
    @IBOutlet weak var movesLabel: UILabel! 
    @IBOutlet weak var timeLabel: UILabel! 

    let BOARD_SIZE: Int = 10 
    var board: Board 
    var squareButtons: [SquareButton] = [] 

    required init?(coder aDecoder: NSCoder) { 
     self.board = Board(size: BOARD_SIZE) 
     super.init(coder: aDecoder) 
     fatalError("init(coder:) has not been implemented") 
    } 
} 

因爲我們必須在子類中實現所需的init?(coder :),所以我嘗試在需要的init中同時初始化板。顯然它不工作。任何建議將不勝感激。

回答

1

刪除

fatalError("init(coder:) has not been implemented") 

required init?(coder aDecoder: NSCoder)初始化劑線。這條線引發你的錯誤。這條線不是必需的。

當您創建init?(coder aDecoder: NSCoder)方法來提醒開發人員實現此方法或從不調用它時,XCode添加此行。如果開發人員會忘記實現它,但會嘗試從存檔或Storyboard中實例化一個類,他將收到一個斷言,並且能夠輕鬆找到一個bug。

+0

謝謝,它的工作原理。 這條線意味着在那裏嗎?或者是否有某種我們選擇忽略它的錯誤? – Yao

+0

@Yao我已經更新了我的答案。請檢查。 – Avt