reloadSections UITableView Swift

时间:2016-04-01 02:38:54

标签: ios swift uitableview reloaddata

我正在尝试重新加载部分并更新一个部分中的单元格数量,但是每当我尝试时,我都会收到错误并崩溃。这是我正在使用的代码:

import UIKit
import CalendarView
import SwiftMoment

class TimeAwayRequestTableViewController: UITableViewController {

@IBOutlet var calendarView: CalendarView!

var selectedDates : [Moment] = []

override func viewDidLoad() {
    super.viewDidLoad()

    calendarView.delegate = self
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    var returnInt = 0

    if section == 0 {
        returnInt = 2
    }
    if section == 1 {
        returnInt = 1
    }

    if section == 2 {
        print(selectedDates.count)
       returnInt = selectedDates.count
    }

    return returnInt
}

}

extension TimeAwayRequestTableViewController : CalendarViewDelegate {

func calendarDidSelectDate(date: Moment) {
    selectedDates.append(date)
    print(selectedDates)
    let section = NSIndexSet(index: 2)
    self.tableView.beginUpdates()
    self.tableView.reloadSections(section, withRowAnimation: .Automatic)
    self.tableView.endUpdates()
}

func calendarDidPageToDate(date: Moment) {
    print(date)
}

}

所以基本上在日历中点击日期时,我将它添加到数组中,然后更新单元格数。我还没有达到配置单元格内容的程度,现在我只是想确保它能够像我想要的那样工作。我得到的错误是:

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]'

但我不明白为什么因为它很重要并且显示2.所以我很困惑。

1 个答案:

答案 0 :(得分:0)

我打赌你在func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell中使用了一些数组(包括{{1}})并且超出了界限。请检查你的数据。