Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift中的条件绑定错误_Ios_Swift2 - Fatal编程技术网

Ios 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

为了学习Swift 2,我正在进行一个示例项目(用Swift的早期版本编写),但遇到了一个问题

我得到了这个编译错误-

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
}