错误说
在初始化之前使用常量'错误'
和
在初始化之前通过闭包捕获常量'错误'
有谁知道如何解决这个问题?
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) }
}
答案 0 :(得分:1)
在您的代码段中,我看不到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)
}
}