
###困っていること
iosアプリ設計パターンという設計の本を読んで勉強していて、CocoaMVCというアーキテクチャの章を読んでいて、本のサンプルではViewや制約を含め全てコードで作成していたのですが、描画の部分をXibで簡単なサンプル作って試してみたいと思いやってみたのですがクラッシュしてしまいます。
コード
ViewControllerでは本にきさいされていた記述を参考にしてloadViewで自分のViewを自作のViewに置き換えることをしています。
ViewController
1class QuizViewController: UIViewController { 2 3 private(set) lazy var myView: QuizView = QuizView() 4 5 override func loadView() { 6 view = myView 7 } 8 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 12 } 13}
シンプルにUISwitchを配置してioONに設定するだけなのですが、クラッシュしてしまいます。
mySwitch.isOn = falseの部分をコメントアウトして実行すると背景がオレンジ色になり問題なくビルドすることができます。
view
1class QuizView: UIView{ 2 3 @IBOutlet weak var mySwitch: UISwitch! 4 override init(frame: CGRect) { 5 super.init(frame: frame) 6 self.backgroundColor = .orange 7 mySwitch.isOn = false //ここでクラッシュしてしまいます 8 } 9 10 required init?(coder aDecoder: NSCoder) { 11 super.init(coder: aDecoder)! 12 return nil 13 } 14} 15
エラーログ
クラッシュ時のエラー以下のようなものが表示されました。
error
1 2Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value
エラーで検索するとviewとの接続がうまくできておらずOptional valueになってしまうという記事がいくつかあったので何回か接続し直してみたのですが、変化ありませんでした。
CustomClassの部分もしっかり設定済みです
何がいけないのか全然わからない状態です。こちらの記事を参考にloadNib()も入れてみましたが、クラッシュしてしまいました。

