7502


UIScrollViewの使い方を勉強していたのですが、  
UIImageViewへUIimageを入れる際に、  
imageView.image = myImageと入れればエラー

fatal error: unexpectedly found nil while unwrapping an Optional value

になってしまうのですが、nilになっている箇所などないはずなのですが、  
この行を

[code]

    imageView = UIImageView(image: myImage)
    
[/code]

に変えればエラーになりません。  
Optionalでnilにならないようにしたはずなのですが、  
nilが発見されたとエラーが出るのですが、何故なんでしょうか。。

[code]

        //宣言
        var imageView: UIImageView!
        var scrollView: UIScrollView!
        //UIImageを作成
        var myImage = UIImage(named: "aaa.png")
        //UIImageViewにUIImageを入れる　　　　←ココ　＊＊＊＊＊＊＊＊＊
        imageView = UIImageView(image: myImage)
        //imageView.image =  myImage　　コレだとエラーになる。
        scrollView = UIScrollView(frame: view.bounds)
        scrollView.addSubview(imageView)
        scrollView.contentSize = imageView.bounds.size
        view.addSubview(scrollView)
    
[/code]


CC BY-SA 3.0
2015-03-05T14:26:51.343
7501
2015-03-05T14:48:59.500
5828
question
swift
SWIFT 引数の入れ方によってエラーが出たりしますが、原因がよくわかりません。


`var imageView: UIImageView!`という宣言は`Implicitly Unwrapped
Optionals`と呼ばれるものですが、これはその名の通りアンラップを暗黙的に行うためのものであって、`Optional`型であることにかわりはありませんから、`imageView`が`nil`でないことを保証するわけではありません。

初期化していなければ`imageView`には`nil`が入ったままですので、当然その状態でアクセスすればランタイムエラーが発生します。


CC BY-SA 3.0
2015-03-05T14:48:59.500
7502
2015-03-05T14:48:59.500
3639
7501
answer