2016-10-30 2 views
0

Ich habe gerade auf Swift 3 aktualisiert und bekomme einen Fehler auf den folgenden Code, der innerhalb eines UITableViewController ist.Swift 3. Argument Labels stimmen nicht überein Fehler

Der Code ist Rücksprung von einem Formular und soll die Tabelle aktualisieren, die den neuen Eintrag aus dem Formular einfügt. Dies funktionierte gut auf 2.2, und ich habe geändert NSIndexPath zu IndexPath

@IBAction func saveTripFormViewList(segue:UIStoryboardSegue){ 
    trips = uiRealm.objects(Trip.self) 
    let indexPath = IndexPath(forRow: trips!.count - 1, inSection: 0) 
    tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic) 
} 

Der Fehler, den ich bekommen ist

Argument labels '(forRow:, inSection:)' do not match any available overloads 

Alle Ratschläge, wie der Fehler zu beheben

Antwort

1

In Swift 3 ist es nur IndexPath (Reihe: Abschnitt :).

FYI, IndexPath ist ein neuer Werttyp (eine Struktur), der den gleichen Job wie NSIndexPath (eine Klasse) ausführt. (Der Initialisierer von NSIndexPath hat sich ebenfalls geändert.) Außerdem glaube ich, dass sie gebührenfrei überbrückt sind, aber zitieren Sie mich nicht dazu.

+0

Danke dafür. Wenn Sie jedoch die Syntax in \t ändern, lassen Sie indexPath = IndexPath (Row: trips.count - 1, Section: 0). Ich bekomme immer noch einen Fehler bei Listen, die nicht mit Überladungen übereinstimmen. –

+0

@MichaelMoulsdale Keine Großbuchstaben, nur Kleinbuchstaben Zeile und Abschnitt –

Verwandte Themen