我是 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?)'
你有什么想法吗?非常感谢!
最佳答案
您应该使用 Swift 原生类型 String。您还需要实现 Swift 2.0 try catch 错误处理。像这样尝试:
let template = try! String(contentsOfFile: path!, encoding: NSUTF8StringEncoding)
let iframe = template.stringByReplacingOccurrencesOfString("{{VIDEO_ID}}", withString: id, options: [], range: nil)
如果您想处理错误:
do {
let template = try String(contentsOfFile: path!, encoding: NSUTF8StringEncoding)
let iframe = template.stringByReplacingOccurrencesOfString("{{VIDEO_ID}}", withString: id, options: [], range: nil)
} catch let error as NSError {
print(error.localizedDescription)
}
关于ios - swift 2 : Cannot invoke initializer for type 'NSString' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32663872/