当我尝试在表中插入一行时,出现了此错误。我已经看了几个小时的其他答案,但是要么他们做的是不同的事情,要么是用目标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/

10-11 19:47