Reputation: 3
The error said
Constant ‘err’ used before being initialized
and
Constant ‘err’ capture by a closure before initialized
Does anyone know how to fix this issue?
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) }
}
Upvotes: 1
Views: 227
Reputation: 70113
In your snippet, I don't see where err
would be populated with an actual error message?
You create the err
variable then you don't use it, so it will always be nil.
It would be better to use try
inside Do-Catch.
Something like this:
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)
}
}
Upvotes: 1