質問編集履歴

1

sam3457

sam3457 score 52

2018/01/31 19:42  投稿

UIButtonのaction、outlet接続時のエラー
画像のstoryboardの様にボタンを一つだけ配置して、そのボタンの背景色を変更するコードを書くためoutlet接続、ボタンが押された時の処理を書くためのaction接続(未記入)をしました。
![イメージ説明](c8d9ee1695b7bec60a01721b75f35000.png)
コードの変更点は以下のみです。
```swift
import UIKit
import ChameleonFramework
class ViewController: UIViewController {
   @IBOutlet var button: UIButton!
   @IBAction func button(_ sender: Any) {
   }
   
   override func viewDidLoad() {
       super.viewDidLoad()
   
       button.backgroundColor = UIColor.flatSkyBlue()
       
   }
   override func didReceiveMemoryWarning() {
       super.didReceiveMemoryWarning()
   }
}
```
こちらのプロジェクトをシュミレータで動かしてボタンを押し、シュミレータを終了してみると画像の様にエラーが発生します。
![イメージ説明](11fadbdcf6a184cafbe95b822f04494c.png)
ちなみにシュミレータ起動中はしっかりと動作し、「終了するまでは」何回ボタンを押してもフリーズしたり、落ちたりはしません。
また、ボタンを一度も押さずに終了するとエラーは出ません。
シュミレータが動いてる時に落ちたり止まったりしないだけましなのですが、気になります。。
全く同じUI部品をoutlet,action接続すると良くないということでしょうか?
皆さまは、storyboardで作りaction接続をしたUI部品の外観をコードで変えたい場合、どの様な方法で作っていますでしょうか?
やはりその場合はUI部品の生成からコードで行うべきなのでしょうか?
やはりその場合はUI部品の生成からコードで行うべきなのでしょうか?
追記
もう一度シュミレータを立ち上げてボタンを押して終了してみると今度はエラーは表示されませんでした(どういうことだ。。)
たまに、storyboardだけいじってシュミレータで確認した後終了すると、それまでは何の問題もなかったのに終了後にエラーメッセージが出てくるのですが、この現象はなんなのでしょうか?
そういう時は、デバックエリアに何も表示されておらず、ただThread 1: signal SIGTERMエラーの文字があるだけでした。。
  • iOS

    6108 questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

  • Xcode

    6867 questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

  • Swift

    11973 questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る