2016-07-12 3 views
0

私のブログのサムネイルを表示するために、私のtableviewcellの各画像を取得するのが難しいです。私はそれが私はそれがために正しいコードを解析して確保するためにのみpostimagelinkするテキストラベルを設定しすぐにURLをダウンロードしてuiimageviewに入力する

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) 

    let blogPost: BlogPost = blogPosts[indexPath.row] 
    //cell.textLabel?.text = blogPost.postTitle 
    postImageLink = blogPost.postImageLink 
    cell.textLabel?.text = blogPost.postImageLink 

    if postImageLink != "" && cell.imageView?.image != nil { 
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { 

      cell.imageView?.image = UIImage(data: NSData(contentsOfURL: NSURL(string:self.postImageLink)!)!) 
     } 
    } else { 
      cell.imageView?.image = UIImage(named: "IMG_0079") 
     } 



    return cell 
} 

私の脳動脈瘤原因を確認してくださいそれは、コードのブロックがあり、ここで作品にするために、画面に印刷持っていたとして、リンクが有効です将来の使用法。 私のブログのサムネイルが読み込まれないという問題を解決するためです。サムネイルが表示されていない場合、プリセット画像のみが表示されます.postImageLinkは、解析した各サムネイルの一意のURLです。 (ええ、私はパーサを書くことができます知っているが、この問題=(..を解決することはできません) 私は屋根のおかげオフ私のラップトップを投げる前に、任意のヘルプは歓迎です! here is image

+0

メインキュー以外のビュー要素(この場合は 'imageView')を編集することはできません。 –

+0

if文のUIImageViewにイメージURLをダウンロードできないということですか?コンパイラは毎回 "nil"を読み込みます。たぶん私は何かを逃している –

+0

いいえ、それはメインのキューに戻ってそこに行かなければならないことを意味します。 –

答えて

0

試し-rookieprogrammer画像

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { 

    // retrieve image from url 
    let image = UIImage(data: NSData(contentsOfURL: NSURL(string:self.postImageLink)!)!) 

    dispatch_async(dispatch_get_main_queue(), { Void in 
     // set image in main thread 
     cell.imageView?.image = image 
    }) 

} 

を取得して設定するには、代わりに二つのブロックを作るために多くを読むことができますhere

0

あなたのコードは動作しています。それはちょうどそれをbすべきですmain_queueのUIメインスレッドでUIオブジェクトを編集します。

dispatch_async(dispatch_get_main_queue()) { 
    () -> Void in 
    // retrieve image from url 
    let image = UIImage(data: NSData(contentsOfURL:NSURL(string:self.postImageLink)!)!) 

    cell.imageView?.image = image 
} 
+0

コンパイラが毎回私のpostImageLink "nil"を見つけるelse文を取り除くと、 if文の中でpostImageLinkにURLを書き込む方法を知ることはできません。 –

関連する問題