2014-10-20 29 views
3

我有一個錯誤,而一個UIImage的分配給UIImageView的斯威夫特致命錯誤:意外發現零而展開的可選值的UIImage

func connectionDidFinishLoading(connection: NSURLConnection!) { 
    var err: NSError 
    var jsonResult : NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary 
    println("\(jsonResult)") 
    if jsonResult.count > 0 { 
    let homepage = jsonResult.objectForKey("homepage") as NSMutableDictionary 
    if homepage.count > 0 { 
     let imageUrl = homepage.objectForKey("url_img") as NSString 
     let backgroundImageUrl = NSURL.URLWithString(imageUrl) 
     let backgroundImageData = NSData(contentsOfURL: backgroundImageUrl) 
     var image :UIImage = UIImage(data: backgroundImageData) 
     println("\(image)") 
     self.backgroundImage.image = image 
    } 
    } 
} 

的財產圖像這是從一個GET請求的委託功能。 backgroundImageDataimage不是零,但它不起作用,我不明白。

我和斯威夫特對於新手:■

客觀-C

NSString *imageUrl = [metaData objectForKey:@"url_img"]; 
NSURL *backgroundImageUrl = [NSURL URLWithString:imageUrl]; 
NSData *backgroundImageData = [NSData dataWithContentsOfURL:backgroundImageUrl]; 
self.backgroundImage.image = [UIImage imageWithData:backgroundImageData]; 
+0

你真的需要開始使用swift 。全部潛力,如果你可能並不總是有你應該使用的圖像: '如果讓圖像=的UIImage(數據:backgroundImageData){ self.backgroundImage.image =圖像 '} 如果圖像絕對不是零則我可以建議的是,也許嘗試不要調用var image?在以前的Xcode beta中,我偶爾遇到了與變量相同的屬性問題 – simonthumper 2014-10-20 17:17:37

+1

這是一個問題,在XCode 6.1之前,初始值設定項不能返回可選值,並且在這裏爲數據和圖像使用兩種不同的初始值設定項。我會試着立即將這些選項與'as Data?'和'UIImage?'一起轉換成可選項,然後看看你得到了什麼。 – cmyr 2014-10-20 17:35:47

+0

當你登錄圖像時它會打印什麼?你是否將圖像視圖正確添加爲子視圖?檢查backgroundImage的框架。檢查它的超級查看。你把它正確地連接起來了嗎?你有沒有檢查它是否是正確的網址?爲背景顏色着色以確保正確添加並具有正確的大小。並請顯示如何設置backgroundImage屬性。 – 2014-10-20 17:37:49

回答

1

的數據都好此代碼的工作,形象不是零。錯誤不在代碼上,而在於請求完成的地方。 請求需要一個委託對象,我想我給它的控制器,但它不是控制器實例化,HomeController()àla place de self 我的不好^^「

相關問題