В настоящее время я попытался настроить json api, чтобы возвращать все имена пользователей последователей пользователя. У меня проблема, когда я пытаюсь добавить точку останова в начале функции tableview (и очереди отправки), они не работают, и я понятия не имею, почему. Все остальные мои точки останова работают. В любом случае, что я хочу здесь sh, так это вернуть имя пользователя последователя каждого пользователя в другую ячейку. Я пробовал разные решения из inte rnet, но ни одно из них не сработало. Я попытался протестировать приведенный ниже код, и все ячейки были пустыми. Вот часть моего кода для тех, кто мог бы понять, что в tarnation я делаю неправильно.
контроллер представления
import UIKit
class FollowerListViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return followers.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
parseFollowers() // Second breakpoint
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath as IndexPath)
tableView.dataSource = self;
let follower = followers[indexPath.row]
cell.textLabel!.text = follower.username
DispatchQueue.main.async {
self.tableView.reloadData()
}
return cell
}
override func viewDidLoad() {
super.viewDidLoad()
parseFollowers()
}
struct Root: Codable {
let followers : FollowerData
}
struct FollowerData: Codable {
enum CodingKeys: String, CodingKey {
case username = "username"
}
let username : String
}
@IBOutlet weak var tableView: UITableView!
var followers = [FollowerData]()
func parseFollowers() {
let decoder = JSONDecoder()
do {
let url = URL(string: "http://localhost:3000/api/v1/profiles/1.json")
let jsonData = NSData(contentsOf: url!)
let output = try decoder.decode(Root.self, from: jsonData! as Data)
} catch {
print(error.localizedDescription)
showNoResponseFromServer()
return
}
DispatchQueue.main.async { // Second breakpoint
self.tableView.reloadData()
}
}
func showNoResponseFromServer() {
let alert = UIAlertController(title: "Error", message: "No response from server. Try again later.", preferredStyle: UIAlertController.Style.alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertAction.Style.default, handler: nil))
self.present(alert, animated: true, completion: nil)
}
json ответ с сервера
{
"username": "test1",
"followers": [
{
"username": "test2"
}
]
}