Доступ к моим данным API за пределами его функцииIOS

Программируем под IOS
Ответить
Anonymous
 Доступ к моим данным API за пределами его функции

Сообщение Anonymous »

У меня есть API списка стран, и я пытаюсь получить доступ к данным, полученным из API, вне его функции.

Код: Выделить всё

import UIKit

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

@IBOutlet weak var tableView: UITableView!
var apiData:[Countries] = []

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.

self.tableView.delegate = self
self.tableView.dataSource = self

fetchAPI()
}

func fetchAPI() {
let apiEndPoint = "https://restcountries.com/v2/all"

guard let url = URL(string: apiEndPoint) else {
print("Could not convert API endpoint to url object")
return
}

URLSession.shared.dataTask(with: url) { (data,response, error) in
if let err = error {
print("Error occured while fetching the data")
print(err)
return
}

if let jsonData = data {
do {
let decoder = JSONDecoder()

let decodedItem:[Countries] = try decoder.decode([Countries].self, from: jsonData)

DispatchQueue.main.async {
self.apiData = decodedItem
}
} catch let error {
print("An error occured during JSON decoding")
print(error)
}
}
}.resume()
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCell(withIdentifier: "myCell", for: indexPath) as UITableViewCell
return cell
}
}
Я попытался определить переменную apidata вне сферы действия и передавать данные в нее, но когда я пытаюсь использовать ее в моей таблице она пуста.

Подробнее здесь: https://stackoverflow.com/questions/703 ... s-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»