我想从我的应用程序中的URL加载一个图像,所以我首先尝试使用Objective-C然后使用Swift,我有一个编译错误:
'imageWithData'不可用:使用对象构造'UIImage(data :)'
我的功能:
@IBOutlet var imageView : UIImageView
override func viewDidLoad() {
super.viewDidLoad()
var url:NSURL = NSURL.URLWithString("http://myURL/ios8.png")
var data:NSData = NSData.dataWithContentsOfURL(url, options: nil, error: nil)
imageView.image = UIImage.imageWithData(data)// Error here
}
Run Code Online (Sandbox Code Playgroud)
在Objective-C中:
- (void)viewDidLoad {
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:(@"http://myURL/ios8.png")];
NSData *data = [NSData dataWithContentsOfURL:url];
_imageView.image = [UIImage imageWithData: data];
_labelURL.text = @"http://www.quentinroussat.fr/assets/img/iOS%20icon's%20Style/ios8.png";
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下为什么imageWithData:它不适用于Swift,我该如何解决这个问题.
错误是:"致命错误:在解包可选值时意外发现nil"
我在ViewController中执行以下操作:
var imageURL:UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
let url = NSURL(string:"http://cdn.businessoffashion.com/site/uploads/2014/09/Karl-Lagerfeld-Self-Portrait-Courtesy.jpg")
let data = NSData(contentsOfURL:url!)
if data!= nil {
imageURL.image = UIImage(data:data!)
}
}
Run Code Online (Sandbox Code Playgroud)
我真的不明白为什么它会报告错误
imageURL.image = UIImage(data:data!)
Run Code Online (Sandbox Code Playgroud)
虽然数据为零,但我已经告诉它不要继续.这不是链接的问题."数据"也没有问题.我试着打印它,它不是零.