2017年5月13日土曜日

NSUrlSessionでハンドラを指定して画像を取得・表示する

1. UIImageをMain.storyboardに貼る
2. UIImageからviewController.swiftにIBOutletを貼る
3. NSUrlSessinoで取得した時のハンドラを書く
    // 画像を取得した時に呼び出されるハンドラ
    func onFinishImage(data: NSData?, res: NSURLResponse?, error: NSError?){
        uiImage = UIImage(data: data!)!
        // バックグラウンドだとUIの処理が出来ないので、メインスレッドでUIの処理を行わせる.
        dispatch_async(dispatch_get_main_queue(), {
            self.uiImageView.image = self.uiImage
        })

        // 続きの処理があればこの辺に書いておく
    }
4. NSUrlSessinでデータを取得する処理を書く(データ取得後は↑のハンドラを呼び出すようにする)
    func getImageImg(uri:String){
        let url = NSURL(string: uri)
        let urlSession = NSURLSession.sharedSession()
        let task = urlSession.dataTaskWithURL(url!, completionHandler: onFinishImage)
        task.resume()
    }

5. ViewDidLoadなどで↑を呼び出す
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        let urlString = "http://hogehoge.co.jp/hoge.img"
        getImageImg(urlString)
    }

0 件のコメント:

コメントを投稿