我是Swift开发的新手。我刚刚将现有的工作代码转换为swift2,同时从6更新Xcode 7。
var err: NSError?
let template = NSString(contentsOfFile: path!, encoding: NSUTF8StringEncoding, error: &err) as! String
let iframe = template.stringByReplacingOccurrencesOfString("{{VIDEO_ID}}", withString: id, options: NSStringCompareOptions.allZeros, range: nil)
if err != nil {
return false
}
然后, 我收到此错误消息:
Cannot invoke initializer for type 'NSString' with an argument list of type '(contentsOfFile: String, encoding: UInt, error: inout NSError?)'
你知道吗?非常感谢!
答案 0 :(得分:0)
您应该使用Swift 2' "do-try-catch" syntax来处理错误:
do {
let template = try String(contentsOfFile: path!, encoding: NSUTF8StringEncoding)
// Use the template
} catch let error as NSError {
// Handle the error
}
明确阅读有关此文档的文档,因为它显示了一些其他处理错误的方法 - 例如try?
会在出现任何错误时为您提供可选项,try!
将阻止错误传播(如果发生错误,您将收到运行时错误。)