Swift 4 доступ к textView в то время как в обработчике завершения - PullRequest
0 голосов
/ 26 октября 2018

Swift 4. У меня проблемы с добавлением UITextView в обработчике завершения. Ошибка и сбой в том, что к нему можно получить доступ только из основного потока. заранее спасибо.

    let jsonUrlString = "http://192.168.1.5:8080/users"
    guard let url = URL(string: jsonUrlString) else {return}

    URLSession.shared.dataTask(with: url) { (data, response, err) in

        guard let data = data else { return}

        let dataAsString = String(data: data, encoding: .utf8) ?? "No data received"
        print(dataAsString)

        do {
           self.userList = try

                JSONDecoder().decode([User].self, from: data)

            for usr in self.userList {
                    print(usr.username)
                self.textView!.text.append(usr.username)
                }
        } catch let jsonErr {
            print("error serializing json: ", jsonErr)
        }

    }.resume()
}

1 Ответ

0 голосов
/ 26 октября 2018

Можно попробовать

DispatchQueue.main.async { 
  self.textView!.text.append(usr.username) 
}

Или

self.userList = try   JSONDecoder().decode([User].self, from: data)
DispatchQueue.main.async {
   self.textView!.text = self.userList.map{$0.username}.joined(separator:"")
}
...