如何从swift获取数据

时间:2017-09-24 06:09:14

标签: swift post closures

我是swift的新人 我写了简单的api连接器来从服务器获取信息,但我不知道如何从服务器获取数据并在应用程序中使用它

var account: DriverAccount = DriverAccount()
ApiConnectController.instance().makeAPICall(url: driverAuthUrlEndpoint,
                                                    params:paramsDictionary,
                                                    withAutorization: false,
                                                    method: .POST,
                                                    success: { (data, response, error, json) in
                                                        self.account = try! DriverAccount(json: json!) // Error Closure cannot implicitly capture a mutating self parameter
                                                        print("OK")
        },
                                                    failure: { (data, response, error, json) in
                                                        print("NOT")
        })

如何将数据导入self.account?

class DriverAccount {
var callSign: String?
var dispPhone: String?
var isLoggedin:Bool

init() {
    self.callSign = ""
    self.dispPhone = ""
    self.isLoggedin = false
}

init(isLoggedIn logedIn: Bool, withCallSign callsign: String, andDispPhone dispPhone: String) {
    self.callSign = callsign
    self.dispPhone = dispPhone
    self.isLoggedin = logedIn
}

}

1 个答案:

答案 0 :(得分:0)

我认为,您的DriverAccount是一个结构。结构是价值观。因此,复制值以便在闭包中重用,self.account是闭包中的let-value。如果要在闭包中更改局部变量,请使用class。 并且,如果只使用自我,你可以产生保留... - 使用([弱自我])来避免它。 https://stackoverflow.com/a/26598603/5769826