SwiftのOptional Bindingでネストが深くなってしまう


Optional String型のimageURLStringに画像のURLが格納されており、その画像をimageViewで表示したいと考えています。

以下のコードで動作はしますが、ネストが深くなりすぎてしまいます。  
よりシンプルな書き方があれば、ご教示いただけると幸いです。

[code]

    if let imageURLString = imageURLString {
        if let urlString = imageURLString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) {
            if let url = NSURL(string: urlString) {
                if let data = NSData(contentsOfURL: url, options: .DataReadingMappedIfSafe, error: nil) {
                    if let image = UIImage(data: data) {
                        self.imageView.image = image
                    }
                }
            }
        }
    }
    
[/code]




@Harawo様の回答にあるように、Swift1.2からは複数のOptional Bindingを1行で書けるようになります。

[code]

    if let imageURLString = imageURLString, urlString = imageURLString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding), url = NSURL(string: urlString), data = NSData(contentsOfURL: url, options: .DataReadingMappedIfSafe, error: nil), image = UIImage(data: data) {
        self.imageView.image = image
    }
    
[/code]

回答者様ありがとうございました。




Swift 1.2より、書式が追加になって、より短い記述ができるようになるそうです。

[code]

    if let imageURLString = imageURLString, let urlString = imageURLString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding), let url = NSURL(string: urlString), let image = UIImage(data: data) {
        self.imageView.image = image
    }
    
[/code]

このように、カンマで区切って記述ができるそうです。  
詳しくは、「Swift 1.2」などをキーワードにして、ネット検索してください。  
しばらくのがまん、といったところでしょうか？

