2017-02-02 45 views
0

我已經閱讀了幾個類似的問題,但他們都沒有爲我工作。那麼,我試圖在列表中顯示不同的圖像並將這些圖像保存在緩存中。我在iconView.sd調用中出錯。從列表不能調用SDWebImage調用

import UIKit 
import SDWebImage 

class TableViewCell: UITableViewCell { 

var item: ItemRealm? { 
    didSet { 
     if item == nil { 
      iconView.image = nil 
      itemTitleLabel.text = "Test" 
      itemDescLabel.text = "Some description" 
     } else { 
      // TODO: Implement item sets 
      iconView.sd_setImage(with: NSURL(string: (item?.icon)!), 
           placeholderImage: UIImage(named: "placeholder.png"), 
           completed: { (image: UIImage!, error: NSError!, cachetype: SDImageCacheType, imageURL: NSURL!) in 

              }) 
      itemTitleLabel.text = item?.name 
      itemDescLabel.text = item?.desc 

     } 
    } 
} 

@IBOutlet weak var iconView: UIImageView! 
@IBOutlet weak var itemTitleLabel: UILabel! 
@IBOutlet weak var itemDescLabel: UILabel! 

override func awakeFromNib() { 
    super.awakeFromNib() 
    iconView.layer.cornerRadius = 4 
} 

override func prepareForReuse() { 
    super.prepareForReuse() 
    self.item = nil 
} 

} 

Error : TableViewCell.swift:22:26: Cannot invoke 'sd_setImageWithURL' with an argument list of type '(NSURL?, placeholderImage: UIImage?, completed: (UIImage!, NSError!, SDImageCacheType, NSURL!) ->())'

圖標(日誌):

; icon: Optional("http://192.168.1.101:8080/api/items/0/icon.png") 
; icon: Optional("http://192.168.1.101:8080/api/items/1/icon.png")... 

回答

0

該問題可能是因爲使用舊NS-類型,得到了在Swift3取代,得到映射到新的數據類型的由Swift3自動現在。

iconView.sd_setImage(with: URL(string: item!.icon), 
     placeholderImage: UIImage(named: "placeholder.png"), 
        options: .highPriority) { image, error, cacheType, imageURL in 
} 
+0

現在我收到錯誤:'sd_setImage'的模糊使用。 – Vuko

+0

剛剛嘗試過,並且經歷過相同的情況,即使在我編輯的答案中正確指定類型時也是如此。它只適用於我添加'options:'參數的情況。 – Kie

+0

Okey。非常感謝。在哪裏添加這個選項:參數如果我可能會問? – Vuko

1

這對我有用。請記住添加選項:像這樣的參數。

iconView.sd_setImage(with: URL(string: item!.icon), placeholderImage: 
     UIImage(named: "placeholder.png"), options: SDWebImageOptions(), 
     completed: { (image: UIImage?, error: Error?, cachetype: SDImageCacheType, 
    imageURL: URL?) in 
      })