Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从类中的URL加载图像_Ios_Swift - Fatal编程技术网

Ios 从类中的URL加载图像

Ios 从类中的URL加载图像,ios,swift,Ios,Swift,我正在尝试从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, img

我正在尝试从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)
显示消息“致命错误:在展开可选值时意外发现nil”


本质上,我认为它可能试图在定义imgUrl之前为imageData赋值,所以我尝试将该行改为“NSURL.URLWithString(imgUrl)”,而不是“self.imgUrl”,但没有修复,因此,我不知道现在的问题是什么,这是一种不同的技术,但下面是一些加载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)
    }
}

抱歉,不小心投了反对票!必须编辑才能反转