iOSアプリ開発メモ No.4 -NSUnknownKeyException-
(入門形式でやってくの疲れたのでやめます…。)
ビルドして実機で動作確認をしようとしたところ、ビルドはSuccessなのに端末上でアプリがフリーズ…。
右下のデバッグ画面でログを確認すると'NSUnknownKeyException'なんて書いてある。
その後には
reason: ‘[<Hoge.ViewController 0x129d86750> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key hogeHoge.'
となっていて「Hoge.ViewControllerにセットされてるhogeHogeというキーが存在しないよ!」とか言っているわけです。
初心者にとっては「なんのこっちゃ」という話なので調べてみました。
削除したOutletのConnectionが残ってた!
結論から言うと「ViewController.swiftにOutletとしてConnectした後、その変数を削除してもパーツ同士のConnectionは残る」らしいです。
「(実体がなくても)うちらズッ友だよ!」という具合にConnecitonだけ残しやがるので「そんなキーないよ!」とログに吐き出すんですね。
解決方法
解決策としてはMain.storyboardで「削除済みのOutletとConnectionがあるパーツ」を右クリックします。
すると以下のような見慣れない画面が出るので、Referencing Outletsという部分で既にないパーツとのConnectを見つけて[×]を押して解除します。
これで無事解決しました。
なんで自動でConnectionの解除やってくれないのだろうか…。
今回参照したページはこちら。