2016-11-28 39 views
0

我在我的Swift應用程序中使用SDWebImage將圖像下載到我的tableview中,但我得到一個簡單的錯誤,我不知道如何解決。我完成了將我的項目從Objective C轉換爲Swift。我使用Swift SDWebImage中的錯誤

代碼

let imgURL = (testObject.value(forKey: "testURL")) 
self.myImageView.sd_setImage((with: imgURL as! URL!), placeholderImage: UIImage(imageNamed: "no-image.png")) 
self.myImageView.contentMode = .scaleAspectFit 

錯誤:

Argument labels '(imageNamed:)' do not math any available overloads

回答

1

你可以嘗試的UIImage初始化正確的命名,並改善投給網址:

let imgURL = testObject.value(forKey: "testURL") as! URL 
self.myImageView.sd_setImage(with: imgURL, placeholderImage: UIImage(named: "no-image.png")) 

不過還好,你可以使用文字圖像的「無圖像」:

let imgURL = testObject.value(forKey: "testURL") as! URL 
self.myImageView.sd_setImage(with: imgURL, placeholderImage: #imageLiteral(resourceName: "no-image.png")) 

而且最好的辦法是避免強制解包。

let imgURL = testObject.value(forKey: "testURL") as? URL 
self.myImageView.sd_setImage(with: imgURL, placeholderImage: #imageLiteral(resourceName: "no-image.png")) 

[更新:作者聲稱值是一個字符串後]

如果「testURL」的值是一個字符串,那麼你就不能解開它作爲一個URL。此代碼可能有所幫助:

let imgString = testObject.value(forKey: "testURL") as? String ?? "" 
self.myImageView.sd_setImage(with: URL(string: imgString), placeholderImage: #imageLiteral(resourceName: "no-image.png")) 
+0

它顯示沒有錯誤,但圖像沒有顯示,佔位符是。我用你的第三個代碼。 – BroSimple

+0

@BroSimple是否將您的值存儲爲URL?也許「testURL」是一個字符串?也許aznelite89答案更好。 –

+0

是的,testURL是一個字符串,沒有存儲爲URL – BroSimple

0

這可能與斯威夫特3的變化,但它應該是UIImage(named: "no-image.png")

+0

這給了我一個錯誤 - 無法從'Any'降級爲更多可選類型'URL!' 。你怎麼看? – BroSimple

+0

我想你需要看看SDWebImage框架。這可能是你需要'URL'而不是'URL!'或者他們的框架使用的是不同於你使用的Swift版本,並且他們把'AnyObject'改成'Any',這在我的代碼中造成了問題。 – Tim

0

它爲我工作。 試試這個: -

self.imageView.sd_setImage(with: URL(string: item.image!)) 

您需要將字符串轉換爲網址,以便這個工作。