2016-04-01 12 views
1

Ich versuche Abschnitt neu zu laden und die Anzahl der Zellen in einem Abschnitt zu aktualisieren, aber ich bekomme einen Fehler und Absturz, wenn ich es versuche. Hier ist der Code ich verwende:reloadSections UITableView Swift

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) 
} 

} 

Also im Grunde, wenn das Datum im Kalender angezapft wird, füge ich es den Array und dann die Anzahl der Zellen aktualisieren. Ich bin noch nicht an dem Punkt angelangt, an dem ich den Zelleninhalt konfiguriere, im Moment versuche ich einfach sicherzustellen, dass das funktioniert, wie ich es will. Der Fehler, den ich bekomme, ist:

Aber ich verstehe nicht warum, weil es zählt und zeigt 2. So bin ich verwirrt.

+0

Sieht für mich aus, als ob Sie versuchen, _section_ 2 nicht Zeile 2 neu zu laden. Versuchen Sie 'NSIndexSet (Index: 0)' – brandonscript

+0

Fügen Sie einen [Ausnahmeblockpunkt] hinzu (http://stackoverflow.com/questions/17802662/exception- breakpoint-in-xcode), so dass wir sehen können, wo 'NSRangeException' ist. – user3480295

Antwort

0

Ich wette, Sie verwendet einige Arrays (einschließlich selectedDates) in func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell und es war jenseits der Grenzen.Bitte überprüfen Sie Ihre Daten.

+0

Ich habe derzeit cellForRowAtIndexPath nicht eingerichtet. – trever

+0

@trever so, wie Ihr Code ist kompilieren sogar? Wohin geht es nach 'numberOfRowsInSection', um die Zellen einzurichten? – HardikDG

+0

@trever Haben Sie die statische Tabellenansicht verwendet? Wie konntest du das nicht einrichten? – Lumialxk