Ios 字符串类型似乎不再提供contentsOfURL初始值设定项(在Xcode 7更新之后)?
这在Xcode 6中有效,但在新的更新中中断:Ios 字符串类型似乎不再提供contentsOfURL初始值设定项(在Xcode 7更新之后)?,ios,swift,swift2,ios9,Ios,Swift,Swift2,Ios9,这在Xcode 6中有效,但在新的更新中中断: if var url = String(contentsOfURL: request.URL, encoding: NSUTF8StringEncoding, error: nil) 现在给我这个错误。难以找到简单的修复方法(如果有): 无法使用类型为“(contentsOfURL:NSURL?,编码:UInt,错误:nilliteralconverable)”的参数列表调用类型“String”的初始值设定项 关于如何实现这一点有什么想法吗?这是
if var url = String(contentsOfURL: request.URL, encoding: NSUTF8StringEncoding, error: nil)
现在给我这个错误。难以找到简单的修复方法(如果有):
无法使用类型为“(contentsOfURL:NSURL?,编码:UInt,错误:nilliteralconverable)”的参数列表调用类型“String”的初始值设定项
关于如何实现这一点有什么想法吗?这是因为Swift 2.0具有全新的错误处理功能 你可以这样做:
if let urlContent = try? String(contentsOfURL: url, encoding: NSUTF8StringEncoding) {
// ...
}
或者,如果要抛出自定义错误:
guard let urlContent = try String(contentsOfURL: url, encoding: NSUTF8StringEncoding) {
throw CustomError.CanNotLoadContentsOfURL
}
其中CustomError
为:
enum CustomError: ErrorType {
case CanNotLoadContentsOfURL
}
这是因为Swift 2.0具有全新的错误处理 你可以这样做:
if let urlContent = try? String(contentsOfURL: url, encoding: NSUTF8StringEncoding) {
// ...
}
或者,如果要抛出自定义错误:
guard let urlContent = try String(contentsOfURL: url, encoding: NSUTF8StringEncoding) {
throw CustomError.CanNotLoadContentsOfURL
}
其中CustomError
为:
enum CustomError: ErrorType {
case CanNotLoadContentsOfURL
}
在Swift 2.0中,错误已被删除,
字符串
初始值设定项现在抛出错误,必须使用catch
捕获该错误。或者,您可以使用try?
使其返回一个可选值,即nil
。如果存在错误,则返回该值
在Swift 2.0中,这与:
if var url = try? String(contentsOfURL: request.URL, encoding: NSUTF8StringEncoding)
try?
返回一个String?
,可选绑定如果var
打开该字符串。在Swift 2.0中,错误已被删除,String
初始值设定项现在抛出错误,必须使用catch
捕获该错误。或者,您可以使用try?
使其返回一个可选的字符串nil
是否存在错误
在Swift 2.0中,这与:
if var url = try? String(contentsOfURL: request.URL, encoding: NSUTF8StringEncoding)
try?
返回一个String?
,如果var打开,则可选绑定会打开该字符串。很有趣,因此导致问题的是错误参数(或者可能是我处理错误的方法…)很有趣,所以导致问题的是错误参数?(或者我的错误处理方法…)