Я использую Swift 4, у меня есть структура, которую я инициализирую значениями по умолчанию.Я сделал функцию внутри, которая должна читать JSON и изменять значения по умолчанию с тем, что он получает, но, похоже, он не работает.
Ошибка: Закрытие не может неявно захватить изменяющийся параметр self
Код:
struct Workspace: Decodable {
var guid: String
var name: String
private enum CodingKeys : String, CodingKey {
case guid = "guid"
case name = "name"
}
init(){
self.guid = "blbl"
self.name = "oops"
}
mutating func getUserWorkspace(base: String, completed: @escaping () -> ()){
let url = URL(string: "some url")!
var request = URLRequest(url: url)
request.addValue("Basic \(base)", forHTTPHeaderField: "Authorization")
request.addValue("application/json", forHTTPHeaderField: "Accept")
URLSession.shared.dataTask(with: request){ (data, response, error) in
if error == nil {
do {
let res: Workspace = try JSONDecoder().decode(Workspace.self, from: data!)
self.guid = res.guid //Error here
self.name = res.name //Error here
DispatchQueue.main.async {
completed()
}
}catch {
print ("JSON error")
}
}
}.resume()
}
Я изменил let на var, но я думаю, что есть что-то, чего я не понимаю..