Xcode 7.0.1 Swift 2.0
参考:UIImage
下記のようにやってみましたが、NSDataに関するエラーがでました。
let url = NSURL(string: img_url); //img_urlにhttp://hoge.com/img.jpg等のStringが入っている var err: NSError?; var imageData = NSData(contentsOfURL:url!,options: NSDataReadingOptions.DataReadingMappedIfSafe, error: &err)!; var img = UIImage(data:imageData); let imgView = UIImageView(image:img); imgView.frame = CGRectMake(0, 0, 100, 50); self.view.addSubview(imgView);
エラー内容
Cannot invoke initializer for type 'NSData' with an argument list of type '(contentsOfURL: NSURL, options: NSDataReadingOptions, error: inout NSError?)'
参考:[swift] CustomCellを利用したユーザ一覧画
Swift 2.0より、JavaではおなじみのTry-Catch構文が導入され、例外処理(エラー発生時処理)が処理されることになりました。それにともない、NSErrorを使うメソッド等の書式が変更を受けているようです。
参考:Swift 2.0 の try, catch ファーストインプレッション
let url = NSURL(string: img_url); let imgData: NSData do { imgData = try NSData(contentsOfURL:url!,options: NSDataReadingOptions.DataReadingMappedIfSafe) let img = UIImage(data:imgData); let imgView = UIImageView(image:img); imgView.frame = CGRectMake(0, 0, 100, 50); self.view.addSubview(imgView); } catch { print("Error: can't create image.") }
これでできた。