Ios Swift中的条件绑定错误
为了学习Swift 2,我正在进行一个示例项目(用Swift的早期版本编写),但遇到了一个问题 我得到了这个编译错误-Ios Swift中的条件绑定错误,ios,swift2,Ios,Swift2,为了学习Swift 2,我正在进行一个示例项目(用Swift的早期版本编写),但遇到了一个问题 我得到了这个编译错误- class func loadMembersFromFile(path:String) -> [Member] { var members:[Member] = [] var error:NSError? = nil if let data = NSData(contentsOfFile: path, options:[]), json = NSJSONSerializ
class func loadMembersFromFile(path:String) -> [Member]
{
var members:[Member] = []
var error:NSError? = nil
if let data = NSData(contentsOfFile: path, options:[]),
json = NSJSONSerialization.JSONObjectWithData(data, options: []) as? NSDictionary,
team = json["team"] as? [NSDictionary] {
for memberDictionary in team {
let member = Member(dictionary: memberDictionary)
members.append(member)
}
}
return members
}
错误是:
条件绑定的初始值设定项必须具有可选类型,而不是“NSData”
及
调用可以抛出,但未标记为“try”,并且未处理错误
我的Swift编程经验非常有限,因此我无法找到纠正这些错误的方法。如有任何建议,将不胜感激。谢谢
条件绑定的初始值设定项必须具有可选类型,而不是
“NSData”
意味着当结果不是可选的时,您不需要条件绑定。但这不是真正的问题。因为NSData
初始化器可能会抛出一个错误(在第二个错误中说明),您可以将其转换为可选。下面是代码的外观:
class func loadMembersFromFile(path:String) -> [Member]
{
var members:[Member] = []
var error:NSError? = nil
if let data = try? NSData(contentsOfFile: path, options:[]),
json = (try? NSJSONSerialization.JSONObjectWithData(data, options: [])) as? NSDictionary,
team = json["team"] as? [NSDictionary] {
for memberDictionary in team {
let member = Member(dictionary: memberDictionary)
members.append(member)
}
}
return members
}