

<起こるエラー>  
実行はできるのですが、一つ目のボタンを押してみると、  
getimage.image = bin1と書いた部分に以下のようなエラーが表示されます。

[code]

    Unexpectedly found nil while unwrapping an Optional value
    
[/code]

<補足>  
ボタンにはtag付けをしています。

コード

[code]

        import UIKit
    
    class ViewController: UIViewController ,UIActionSheetDelegate{
    
    
        @IBOutlet weak var getimage: UIImageView!
    
        //画像ファイルの定義 〜bin(数字)という名前に変更
        var bin1 = UIImage(named:"binsen1.jpg")!
        var bin2 = UIImage(named:"binsen2.jpg")!
        var bin3 = UIImage(named:"binsen3.png")!
    
    
        @IBAction func action(_ sender: UIButton) {
            switch sender.tag {
            case 1:
            //getimageというUIImageに画像を表示
                getimage.image = bin1
            case 2:
                getimage.image = bin2
            case 3:
                getimage.image = bin3
    
            default:break
            }
        }
    
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    
    }
    
[/code]


CC BY-SA 4.0
2018-11-30T08:31:47.930
50782
2018-11-30T10:30:27.347
2018-11-30T08:33:04.047
3060
31222
question
swift4
押したボタンによって、次のページの背景画像を変えたいのですがうまくいきません。


2つ目、3つ目のボタンを押したときの動作のみ期待通り動くのでしょうか？

2つ目、3つ目のボタンを押しても同じエラーが出るようでしたら、  
`binsen1.jpg`から`binsen3.jpg`までのファイルがプロジェクトに追加され、プロジェクト設定の`Build Phase`→`Copy
Bundle Resources`に、上記ファイルが含まれているか確認して下さい。

余談ですが、積極的に直す必要はありませんが、直した方がより良い所が2点ほど。

  * `bin1` ~ `bin3`は`UIImage`の再代入をしないのであれば`let`の方がいいと思います
  * 変数の宣言は、変数名の後ろに`: 型・クラス名`としてコーディング時に今、自分が宣言した変数はなにを格納するのか、型をしっかり書いた方がいいと思います

下の様な感じですね。

[code]

    let bin1: UIImage = UIImage(named: "binsen1.jpg")!
    let bin2: UIImage = UIImage(named: "binsen2.jpg")!
    let bin3: UIImage = UIImage(named: "binsen3.jpg")!
    
[/code]


CC BY-SA 4.0
2018-11-30T08:51:37.003
50784
2018-11-30T10:30:27.347
2018-11-30T10:30:27.347
14745
14745
50782
answer