2014-10-03 19 views
1

我試圖從一個URL上載入圖像在Swift上,並實例化它。我可以編譯我的代碼,但編譯代碼時會中斷。從一個類的URL中加載圖像

這是我的類代碼:

class Beer { 
    let name : String 
    let beernameInDB : String 
    let imgUrl : NSURL 
    var err : NSError? 
    let imageData : NSData 
    let img : UIImage 
    init(name : String, imgUrl: String, beernameInDB : String){ 
     self.name = name 
     self.imgUrl = NSURL.URLWithString(imgUrl); 
     self.beernameInDB = beernameInDB 
     self.imageData = NSData.dataWithContentsOfURL(self.imgUrl,options: NSDataReadingOptions.DataReadingMappedIfSafe, error: &err) 

     self.img = UIImage(data: imageData) 
    } 
} 

這裏是我實例化,並且它打破:

class FirstViewController: UIViewController { 
    var array = [ 
     Beer(name: "Budweiser", imgUrl: "https://s3.amazonaws.com/brewerydbapi/beer/1P45iR/upl[ad_upBR4q-large.png", beernameInDB:"Anheuser-Busch InBev-Budweiser") 
    ] 

當我運行它,它打破了這條線的類:

self.imageData = NSData.dataWithContentsOfURL(self.imgUrl,options: NSDataReadingOptions.DataReadingMappedIfSafe, error: &err) 

隨着消息「致命錯誤:意外地發現零,同時解包可選值」

本質上,我認爲它可能試圖在定義imgUrl之前爲imageData指定一個值,所以我試圖改變該行以使'NSURL.URLWithString(imgUrl)'代替'self.imgUrl',但它沒有'牛逼修復,所以我真的不知道是什麼問題,現在

回答

1

這是一種不同的技術,但這裏是一些簡單的代碼來加載Web照片:

import UIKit 
import WebKit 

class ViewController: UIViewController { 

    @IBOutlet var containerView : UIView? 
    var webView: WKWebView? 

    override func loadView() { 
     super.loadView() 

     self.webView = WKWebView() 
     self.view = self.webView! 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     var url = NSURL(string:"http://chart.finance.yahoo.com/z?s=AAPL&t=6m&q=l&l=on&z=s&p=m50,m200") 
     var req = NSURLRequest(URL:url) 
     self.webView!.loadRequest(req) 
    } 
} 
+0

道歉,倒投意外!必須編輯才能夠扭轉 – 2015-02-20 09:54:06