【发布时间】:2020-06-18 14:18:38
【问题描述】:
我有 2 个文件。首先 - TransactionsViewController。第二 - 获取交易。当我打开 TransactionsViewController 时,该视图中的表加载速度比 GetTransactions 中的日期快。因此,它显示为空白。如何解决?
下面是TransactionsViewControllerviewDidLoad的代码:
override func viewDidLoad() {
super.viewDidLoad()
GetTransactions().getTransactions()
clientsCount = GetTransactions.transactions.count
setupNavBar()
createTable()
refreshSetup()
}
GetTransactions 的代码如下:
class GetTransactions {
static var transactionsArr = [[String : Any]]()
static var transactions = [TransactionInfo]()
let URL_GET_TRANSACTIONS = "https://mashkov.dev/sites/default/BankApp/Transactions/Transactions.php"
func getTransactions(){
GetTransactions.transactionsArr.removeAll()
AF.request(URL_GET_TRANSACTIONS).responseJSON{ (response) in
if (response.value as? [[String : Any]]) != nil {
GetTransactions.transactionsArr = response.value as! [[String : Any]]
}
self.convertData()
print(GetTransactions.transactions)
}
}
func convertData() {
GetTransactions.transactions.removeAll()
for transaction in GetTransactions.transactionsArr {
let cl = TransactionInfo(id: transaction["id"] as! String,
payee: transaction["payee_account_id"] as! String,
sender: transaction["sender_account_id"] as! String,
transDate: transaction["trans_date"] as! String,
amount: transaction["amount"] as! String,
isSuccessfully: Bool((transaction["isSuccessfully"] as! String)) ?? true)
GetTransactions.transactions.append(cl)
}
}
}
【问题讨论】:
-
你需要了解异步。
if (response.value as? [[String : Any]]) != nil {将在您认为会后调用。 -
将闭包作为参数传递给
getTransactions,并在您进行API调用并完成处理后执行它。在关闭时重新加载表视图。你有你想要的
标签: swift networking view download alamofire