OutletとActionのダブルConnectionでエラー – Swift3.0 on Xcode

IT
この記事は約2分で読めます。

Xcodeを使って、Swift3.0のコードを書いている時にどハマりした初心者(私)用の備忘録です。開発バリバリの人はきっとこんな簡単な失敗はしないと思います。

 

スポンサーリンク

コトの発端

Button要素をConnectする際に、controlキーを押下して、ViewControllerにドラッグしました。

その際に出現する選択肢です。「Action」を選ぶべきところを、一度「Outlet」選んでしまいました

 

ViewControllerから消して、ActionでConnectし直せばいいや…。これが間違いでした。そのまま、シミュレーターで実行テスト!としてみると画面表示時に・・・

 

スポンサーリンク

signal SIGABRT

 

「classAppDelegate: UIResponder, UIApplicationDelegate」という門前払い的エラーを出力している模様。初心者(私)には逃げたくなる最初の壁。なんですか、トランプ大統領はこんなところにも、壁を作ったのですか。無理なら辞めればいいよと優しい声が聞こえてきます。

 

スポンサーリンク

原因

「Button要素をConnectする際に、「Action」を選ぶべきところを、一度「Outlet」選んでしまった」でした。Connectした要素のヘッダファイルを見てみると「Outlet」が残っているのです。

 

この状態で「ViewControllerから消して、ActionでConnectした」ために、2つのConnectionがあって、エラーが出力したということでした。

 

スポンサーリンク

解決策

ConnectしたButton要素のプロパティで「Outlet」を接続解除してあげること。これでシミュレーターを動かして、エラーが出力されなければ解決です。

 

スポンサーリンク

まとめ

controlキー押下のドラッグによるConnectは便利ですが、不要なConnectionが残ってしまっていないか、確認しましょう。

 

スポンサーリンク

ちなみに

イチからやり直した際に、複数個目のButton要素接続時にcontrolキー押下のドラッグによるConnectで「Action」を選んだ際にも、Outletが同時に接続されたことがありました。その際にも同様に上記解決策で解決できました。

 

スポンサーリンク

使用環境

  • Mac OSX El Capitan 10.11.6
  • Xcode 8.2.1 (8C1002)

 

タイトルとURLをコピーしました