NSURL.URLWithString出错与Swift Objective-C 混写有关 - konakona
konakona
Dream Afar.
konakona

NSURL.URLWithString出错与Swift Objective-C 混写有关

网上很多Swift开源代码都涉及到一个问题,那就是在读取远程资源时,出现NSURL.URLWithString错误。google了一圈,发现很多人也是这样写的。比如这篇:http://www.sitepoint.com/introduction-swift-programming-language/   有些国外朋友说在尾部加了!后解决了问题,但是我试了还是没用。

 

  出现问题的代码:

func setImage(urlString:String,placeHolder:UIImage!)
{
       var url = NSURL.URLWithString(urlString) //报错为:URLWithString is unavailable : use object construction 'NSURL(string:)'  //事实上,这仅适用于旧版本的swift
       var cacheFilename = url.lastPathComponent

  其实,Swift 的语法尚未完全确定,在碰到与 Objective-C 有关的 API 时,可能会出现在 Objective-C 里能使用而 Swift 不能使用的情况,尤其是构造函数和类方法,这就属于这种情况。   在 Swift 里,不要使用原有的 API 调用形式和习惯,要使用 Swift 风格的构造函数初始化方式,所以报错代码改为:

var url = NSURL(string: urlString) // for swift 1.1+ xcode 6.1

网上很多人用最初的方法能够实现,是因为当时 Swift 语言还允许这种使用方式,但现在已经不允许了。

赞赏
# #
首页      程序开发      Linux      OS X      NSURL.URLWithString出错与Swift Objective-C 混写有关

团哥

文章作者

继续玩我的CODE,让别人说去。 低调,就是这么自信。

发表回复

textsms
account_circle
email

konakona

NSURL.URLWithString出错与Swift Objective-C 混写有关
网上很多Swift开源代码都涉及到一个问题,那就是在读取远程资源时,出现NSURL.URLWithString错误。google了一圈,发现很多人也是这样写的。比如这篇:http://www.sitepoint.com/introduct…
扫描二维码继续阅读
2015-01-17