2014-11-21 58 views
1

我试图从URL更改Swift中的UIImageView。我尝试使用的代码似乎表明,方法dataWithContentsOfURL已被弃用,或者出于某种原因,Swift编译器不喜欢我想要做的事情。基于URL更改UIImageView

这是我的代码。

let url2 = NSURL(string: currentAnimation) 
    var err: NSError? 
    var imageData :NSData = NSData.dataWithContentsOfURL(url2!, options: NSDataReadingOptions.DataReadingMappedIfSafe, error: err!) 
    var currentImage = UIImage (data: imageData) 
    self.weatherImage.image = currentImage 

当我尝试这样做时,我得到一个编译消息,即编译器无法用这些类型的参数列表调用该方法。

对不起,我对这一切仍然陌生,所以如果有人能帮上忙,那很好,谢谢!

回答

0

更改url2!以url2作为第一个参数。

+0

当我这样做时,它说方法调用中有一个额外的参数'选项' – pbush25 2014-11-21 04:32:58

+0

将NSError更改为NSErrorPointer。参数列表中的类型必须与方法签名匹配。 – 2014-11-21 04:36:38

+0

哈哈好吧,现在我已经完成了,我得到的编译消息,“可选类型的url2”值不解开“,这就是为什么我有!首先。 – pbush25 2014-11-21 04:38:43

0

您是否使用旧版本的Xcode?大多数Objective-C工厂方法已经在Swift中转换为初始化器。这对我的作品的版本低于 - 注意,NSURLNSDataUIImage初始化所有返回自选,所以你需要检查或解开他们跑这一切:

if let url2 = NSURL(string: currentAnimation) { 
    var err: NSError? 
    if let imageData = NSData(contentsOfUrl: url2!, 
            options: .DataReadingMappedIfSafe, 
             error: &err) { 
     var currentImage = UIImage(data: imageData) 
     self.weatherImage.image = currentImage 
    } 
} 

NSDataerror参数初始化程序是一个NSErrorPointer,它是AutoreleasingUnsafeMutablePointer<NSError?>的一个输入。这将接受nil或可选的NSError?作为输入/输出参数(即用&标记)。