Вы должны использовать completion
для любой асинхронной операции, поэтому ваш код должен выглядеть следующим образом:
class classA {
public func getMethod(completion: @escaping (_ resultArray: [Any])->()) {
var array = [Any]()
let session = URLSession.shared
let aURL = URL(string: baseUrl+month)!
var request = URLRequest(url: aURL)
request.setValue("application/json", forHTTPHeaderField: "Accept")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue("Bearer \(UserDefaults.standard.string(forKey: Actoken)!)", forHTTPHeaderField: "Authorization")
let task = session.dataTask(with: request, completionHandler: {(data, response, error) in
do {
let json = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.allowFragments)
array = [json]
completion(array)
}
catch {
print("Could not serialise")
}
})
task.resume()
}
}
// Вызывающий объект должен быть похож на
let yourClass = classA()
yourClass.getMethod { [weak self] (resultArr) in
DispatchQueue.main.async {
let classB = ClassB()
classB.resultArray = resultArr
self?.navigationController.pushViewController(classB, animated: true)
}
}
, как только он будет передан в класс Bс помощью массива результатов вы можете проанализировать ответ JSON и заполнить таблицу.