[英]json.swift error is Self.init isn't called on all paths in delegating initializer
enter image description here在此处输入图片说明
errors such as the photo came out in json.swift json.swift 中出现诸如照片之类的错误
I don't know how to fix it.我不知道如何修复它。 please help me
请帮我
public convenience init(nsurl:NSURL) {
var enc:NSStringEncoding = NSUTF8StringEncoding
let err:NSError?
do {
let str: String? = try NSString(contentsOfURL: nsurl, encoding: NSUTF8StringEncoding) as String
//print(str)
self.init(nsurl:nsurl)
} catch let error as NSError {
//print(error.description)
}
}
You have a few options here depend on your intention.根据您的意图,您有几个选择。
If you just wont your object to be crated and print addition info during init you can rewrite you code like this.如果您只是不想在初始化期间创建对象并打印附加信息,则可以像这样重写代码。
public convenience init(nsurl:NSURL) {
var enc:NSStringEncoding = NSUTF8StringEncoding
let err:NSError?
self.init(nsurl:nsurl)
do {
let str: String? = try NSString(contentsOfURL: nsurl, encoding: NSUTF8StringEncoding) as String
print(str)
} catch let error as NSError {
print(error.description)
}
}
Another option is to have failable initializer.另一种选择是具有可失败的初始化程序。 For this you need call self.init(nsurl:nsurl) if do block performed without exception otherwise return nil from catch block.
为此,您需要调用 self.init(nsurl:nsurl) 如果 do 块无异常执行,否则从 catch 块返回 nil。 Also you need to mark you convenience init method as failable (see "?" after init word)
您还需要将便利的 init 方法标记为可失败(请参阅 init 字后的“?”)
public convenience init?(nsurl:NSURL) {
var enc:NSStringEncoding = NSUTF8StringEncoding
let err:NSError?
do {
self.init(nsurl:nsurl)
let str: String? = try NSString(contentsOfURL: nsurl, encoding: NSUTF8StringEncoding) as String
print(str)
} catch let error as NSError {
print(error.description)
return nil
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.