2014-11-21 60 views
1

我試圖從URL更改Swift中的UIImageView。我嘗試使用的代碼似乎表明,方法dataWithContentsOfURL已被棄用,或者出於某種原因,Swift編譯器不喜歡我想要做的事情。基於URL更改UIImageView

這是我的代碼。

let url2 = NSURL(string: currentAnimation) 
    var err: NSError? 
    var imageData :NSData = NSData.dataWithContentsOfURL(url2!, options: NSDataReadingOptions.DataReadingMappedIfSafe, error: err!) 
    var currentImage = UIImage (data: imageData) 
    self.weatherImage.image = currentImage 

當我嘗試這樣做時,我得到一個編譯消息,即編譯器無法用這些類型的參數列表調用該方法。

對不起,我對這一切仍然陌生,所以如果有人能幫上忙,那很好,謝謝!

回答

0

更改url2!以url2作爲第一個參數。

+0

當我這樣做時,它說方法調用中有一個額外的參數'選項' – pbush25 2014-11-21 04:32:58

+0

將NSError更改爲NSErrorPointer。參數列表中的類型必須與方法簽名匹配。 – 2014-11-21 04:36:38

+0

哈哈好吧,現在我已經完成了,我得到的編譯消息,「可選類型的url2」值不解開「,這就是爲什麼我有!首先。 – pbush25 2014-11-21 04:38:43

0

您是否使用舊版本的Xcode?大多數Objective-C工廠方法已經在Swift中轉換爲初始化器。這對我的作品的版本低於 - 注意,NSURLNSDataUIImage初始化所有返回自選,所以你需要檢查或解開他們跑這一切:

if let url2 = NSURL(string: currentAnimation) { 
    var err: NSError? 
    if let imageData = NSData(contentsOfUrl: url2!, 
            options: .DataReadingMappedIfSafe, 
             error: &err) { 
     var currentImage = UIImage(data: imageData) 
     self.weatherImage.image = currentImage 
    } 
} 

NSDataerror參數初始化程序是一個NSErrorPointer,它是AutoreleasingUnsafeMutablePointer<NSError?>的一個輸入。這將接受nil或可選的NSError?作爲輸入/輸出參數(即用&標記)。