当我尝试在表中插入一行时,出现了此错误。我已经看了几个小时的其他答案,但要么他们做的是不同的事情,要么是用目标C编写的。我是新手,所以我可能做的很明显是我不能弄清楚的错误。
这是我的代码:
import UIKit
import Alamofire
import SwiftyJSON
import SwiftDate
class LaunchesViewController: UIViewController {
@IBOutlet var launchesTable: UITableView!
var launches : [Launch]!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
loadLaunches()
}
func loadLaunches()
{
Alamofire.request("http://10.0.0.26:5000/V1/Launches/Test", method: .get).validate().responseJSON { response in
let json = JSON(response.result.value!)
let jsonArray = json.arrayValue
self.launches = []
for jsonObject in jsonArray {
self.launches.append(Launch(launchDate: jsonObject["LaunchDate"].string?.toDate(), launchName: jsonObject["LaunchName"].string))
}
self.onLaunchesLoaded()
}
}
func onLaunchesLoaded()
{
self.launchesTable.beginUpdates()
self.launchesTable.insertRows(at: [IndexPath.init(row: 0, section: 0)], with: .none)
self.launchesTable.endUpdates()
}
}
答案 0 :(得分:0)
您应该正确配置表视图的数据源。
首先,根据您的网络请求返回的数据,通过numberOfSectionsInTableView:
指定节数和tableView:numberOfRowsInSection:
行数。另外,由于重用了表格视图单元格,因此填充表格视图单元格的最佳方法是通过表格视图数据源tableView:cellForRowAtIndexPath:
方法,而不是调用insertRows()
方法。这应该在Basics of TableView Creation中涵盖。