从URL获取UIView的图像[Swift]

时间:2015-10-26 22:35:26

标签: swift uiviewcontroller uiimageview uiimage

好吧所以我已经制作了一些处理程序和类来从URL中获取数据,它一切正常,我检查了URL是否有效。

无论如何,我正在尝试在我的类中存储的URL上为UIViewController执行NSData(contentsOfURL)。我已成功打印出字符串变量,如名称,类型,描述,但我很难在ViewController上将UIImage显示到图像视图中。

这是我的代码,它在View加载时运行:

func configureView() {
        // Update the user interface for the detail item.
        if let card = detailCard {
            title = card.cardTitle

            //Assign Elements
            detailDescriptionLabel?.text = card.description
            typeLabel?.text = card.cardType
            cardTitleLabel?.text = card.cardTitle
            costLabel?.text = card.cardCost

            print(card.cardImageURL)

            if let url = NSURL(string: card.cardImageURL){
                let data = NSData(contentsOfURL: url)
                imageView.image = UIImage(data: data!)// <--- ERROR HERE: EXC_BAD_INSTRUCTION
            }

            //Print Log
            //print(card.logDescription)
        }
    }

与上面的评论一样,我在imageView.image = UIImage(data: data!)行上收到错误:

  

主题1:EXC_BAD_INSTRUCTION

以下是cardImageURL的代码:

var cardImageURL: String {
    return String(format: "http://testyard.example.net/display/images/cards/main/%@", image)
}
//This is a computed variable when a "Card" class object is created.

它在字符串中返回正确的URL:

  

http://testyard.example.net/display/images/cards/main/armor-of-testing.jpg

我在其他地方使用过这段代码,它工作正常,为什么会在这里抛出错误?

提前致谢。

1 个答案:

答案 0 :(得分:2)

您确定要下载的数据是图像吗?你应该使用这一行:

if let image = UIImage(data: data)`

这应该可以阻止错误,但您可能需要测试您的数据实际上是否包含图像。