是否将NSString(contentsOfURL:…)强制转换为字符串?
Swift版本为1.2,错误信息为: 串?不能转换为字符串是否将NSString(contentsOfURL:…)强制转换为字符串?,string,swift,nsstring,String,Swift,Nsstring,Swift版本为1.2,错误信息为: 串?不能转换为字符串 使用Swift 1.2,字符串和NSString之间的自动桥接已被删除 因此,您必须明确地执行强制转换: let str=NSString(contentsofull:nsurl,usedEncoding:&enc,error:&err)作为?StringSwift的String接受与NSString相同的初始值设定项,因此您甚至不必使用NSString或typecast: public convenience init(nsurl:N
使用Swift 1.2,字符串和NSString之间的自动桥接已被删除 因此,您必须明确地执行强制转换:
let str=NSString(contentsofull:nsurl,usedEncoding:&enc,error:&err)作为?String
Swift的String接受与NSString相同的初始值设定项,因此您甚至不必使用NSString或typecast:
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 2.0的更新
let str = String(contentsOfURL: nsurl, encoding: enc, error: &err)
如果需要,您还可以使用可选的带try?
,在这种情况下不需要do catch
:
do {
let str = try String(contentsOfURL: nsurl, encoding: enc)
print(str)
} catch {
print(error)
}
在Swift 3中,我使用以下命令
if let str = try? String(contentsOfURL: nsurl, encoding: enc) {
print(str)
} else {
// didn't succeed
}
是的,var在编辑代码时出现错误,我以任何方式删除了它,并且它工作了。。
do{
let str = try String(contentsOf:personUrl!)
print(str)
}catch let error{
print(error)
}