2015-09-19 32 views
0

我有這個功能從服務器獲取隨機圖像,但它似乎不想一直更新,我認爲它認爲數據沒有當它在每個請求中加載一個新的圖像時都會改變。這裏是我的代碼,有沒有什麼方法可以確保(或告訴Swift)數據在分配給圖像之前是不同的?如何確保下載的數據在分配之前是不同的

func getNewImage() { 

    let url = NSURL(string: "http://weboctopi.com/randomcuteimages/rotate.php")! 

    let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) -> Void in 

     if error == nil { 

      self.downloadedImage = UIImage(data: data!)! 

      self.imagePlaceholder.setImage(self.downloadedImage) 

     } else { 

      print(error) 

     } 

    } 

    task.resume() 

} 

回答

0

如果這是一個URL的緩存問題,你可以使用自定義配置清除緩存:

let config = NSURLSessionConfiguration.ephemeralSessionConfiguration() 
config.URLCache = nil // don't cache 

let task = NSURLSession(configuration: config).dataTaskWithURL(... 
+0

似乎沒有任何區別,我認爲它是rotate.php腳本本身。但是,謝謝。 –

0

我覺得你的形象不更新的原因是因爲蓋子是在後臺執行線程和UIKit更新需要在主線程上。將此更改添加到您的代碼應該可以解決問題:

dispatch_async(dispatch_get_main_queue(), {() -> Void in 
    self.imagePlaceholder?.image = downloadedImage 
}) 
+0

似乎沒有任何區別,我認爲它是rotate.php腳本本身。但是,謝謝。 –

相關問題