【发布时间】:2014-08-05 13:39:36
【问题描述】:
我想从我的应用程序中的 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
}
在 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";
}
谁能解释一下为什么imageWithData: 不适用于 Swift,我该如何解决这个问题。
【问题讨论】:
-
试试这个
imageURL.image = UIImage(data: myDataVar) -
完美!谢谢 但是我不明白为什么这个方法在 Objective C 中起作用,而不是在 Swift 中……奇怪
-
当你在使用 Cocoa 类时遇到问题,尝试 CMD+单击类名,你应该可以看到该类的 Swift 界面!
-
if let url = NSURL(string: "imageurl") { if let data = NSData(contentsOfURL: url) { imageView.image = UIImage(data: data) } }
-
@LeoDabus 没关系。据我了解,“swift”标签将始终引用当前版本。指定版本的标签用于与版本特定语言功能相关的问题。这不是确定的,但请查看this meta post。