将 NSString(contentsOfURL:...) 转换为 String? [英] Cast NSString(contentsOfURL:...) to String?

查看:67
本文介绍了将 NSString(contentsOfURL:...) 转换为 String?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

public convenience init(nsurl:NSURL) {
    var enc:NSStringEncoding = NSUTF8StringEncoding
    var err:NSError?
    let str:String? =
    NSString(
        contentsOfURL:nsurl, usedEncoding:&enc, error:&err
    )
    if err != nil { self.init(err!) }
    else { self.init(string:str!) }
}

Swift 是 1.2 版本,错误信息是:

Swift is version 1.2, error message is:

NSString?不可转换为字符串

NSString? is not convertible to string

推荐答案

Swift 的 String 接受与 NSString 相同的初始化器,因此您甚至不必使用 NSString 或类型转换:

Swift's String accepts this same initializer as NSString, so you don't even have to use NSString nor to typecast:

let str = String(contentsOfURL: nsurl, encoding: enc, error: &err)

Swift 2.0 的更新

do {
    let str = try String(contentsOfURL: nsurl, encoding: enc)
    print(str)
} catch {
    print(error)
}

如果需要,您也可以将 Optional 与 try? 一起使用,在这种情况下不需要 do catch:

You can also use an Optional with try? if you want, in this case no need for do catch:

if let str = try? String(contentsOfURL: nsurl, encoding: enc) {
    print(str)
} else {
    // didn't succeed
}

这篇关于将 NSString(contentsOfURL:...) 转换为 String?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆