错误称
初始化之前使用了常量"err"
和
在初始化之前通过闭包捕获常量"错误"
有人知道如何解决这个问题吗?
public convenience init(nsurl:NSURL) {
var enc:NSStringEncoding = NSUTF8StringEncoding
let err:NSError?
let str =
String(try! NSString(
contentsOfURL:nsurl, usedEncoding:&enc))
//the code below got error
if err != nil { self.init(err!) }
else { self.init(string:str) }
}
在您的代码片段中,我看不出err
会在哪里填充实际的错误消息?
您创建了err
变量,但不使用它,因此它将始终为零。
最好在Do Catch中使用try
。
类似这样的东西:
public convenience init(nsurl:NSURL) {
var enc:NSStringEncoding = NSUTF8StringEncoding
do {
let str = try String(contentsOfURL:nsurl, usedEncoding:&enc)
self.init(string:str)
} catch let error as NSError {
self.init(string: error.localizedDescription)
}
}