0
我正在使用JSON與Moya學習Swift中的業餘愛好項目iOS應用程序。以下是我的VC代碼的樣子:無法爲預先聲明的數組分配JSON響應
import UIKit
import Moya
import Moya_ModelMapper
class SQSquirrelListViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
var squirrels: [Squirrel] = []
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.fetchData()
}
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
}
func fetchData() {
let provider = MoyaProvider<SQService>()
provider.request(.squirrelsIndex(page: "1")) { result in
switch result {
case let .success(moyaResponse):
do {
let sq = try moyaResponse.mapObject() as Squirrels
self.squirrels = sq.items
} catch {
print(error.localizedDescription)
}
let statusCode = moyaResponse.statusCode
print("STATUS CODE: \(statusCode)")
case let .failure(error):
print(error.localizedDescription)
}
}
tableView.reloadData()
}
}
啓動應用程序後,squirrels
數組爲空。我不確定它是否與Moya有關,還是它是View Controller流程中的缺陷?
什麼東西印在控制檯上? – hybridcattt
@hybridcattt只有狀態碼,如在fetchData()中的print語句中。在我嘗試在表視圖的數據源方法中使用squirrels [indexPath.row]時,調試器中的數組是空的,並且還會引發「數組索引超出範圍」。 – michalronin
嘗試在'self.squirrels = sq.items'中放置一個斷點並查看'sq'中的內容。還打印'嘗試moyaResponse.mapObject()' - 這很可能是空的。 – hybridcattt