当我尝试在表中插入一行时,出现了此错误。我已经看了几个小时的其他答案,但是要么他们做的是不同的事情,要么是用目标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()
}
}
最佳答案
您应该正确配置表视图的数据源。
首先,根据网络请求返回的数据,通过numberOfSectionsInTableView:
指定部分数,并指定tableView:numberOfRowsInSection:
行数。另外,由于表视图单元格已被重用,因此填充表视图单元格的最佳方法是通过表视图数据源tableView:cellForRowAtIndexPath:
方法而不是调用insertRows()
方法。这应该在Basics of TableView Creation中涵盖。
关于ios - 在表中插入一行时,“试图将第0行插入第0部分,但更新后第0部分只有0行”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53717288/