2014-10-03 2 views
1

Im пытается загрузить изображения из 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) 

С сообщением «фатальная ошибка: неожиданно обнаружена нуль при развертывании необязательного значения»

По сути, я думаю, что, вероятно, он пытается присвоить значение imageData до того, как будет определен imgUrl, поэтому я попытался изменить эту строку, чтобы иметь «NSURL.URLWithString (imgUrl)» вместо «self.imgUrl», но это не так, т исправить, так что я не знаю, что это проблема сейчас

ответ

1

Это другая техника, но вот некоторые простой код для загрузки веб-фото:

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

извинений, вниз проголосовали случайно! Придется редактировать, чтобы иметь возможность –

Смежные вопросы