2016-07-14 14 views
37

Ich versuche mit Apples Start Developing iOS Apps (Swift) tutorial zu folgen und habe es fast fertiggestellt. Ich musste einige Teile des Tutorials ändern, während ich Xcode 8 benutze (was meiner Meinung nach Swift 3 anstelle von Swift 2 verwendet). Allerdings Ich laufe in den folgenden Compiler-Fehler, und ich weiß nicht, warum:Wie hat sich die Initialisierung von NSIndexPath in Swift3 geändert?

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

in der folgenden Funktion:

@IBAction func unwindToMealList(sender: UIStoryboardSegue) { 

    if let sourceViewController = sender.sourceViewController as? MealViewController, meal = sourceViewController.meal { 
     // Add a new meal 
     let newIndexPath = NSIndexPath(forRow: meals.count, inSection: 0) 
     meals.append(meal) 
     tableView.insertRows(at: newIndexPath, with: .bottom) 
    } 

} 

Ich vermute, dass es eine andere initialiser ist für NSIndexPath, das in Swift 3 geändert wurde, aber ich kann es nicht finden. Mache ich etwas falsch?

Danke,

+4

Sorry, aber als neuer Benutzer von Swift und die Apple-docs Ich dachte, ich geändert machte gute Recherchen. Es würde helfen, wenn Apple ihre Tutorials aktuell und fehlerfrei halten würde ... – Garry

+3

Diese Frage bekommt mein Plus, da weder Code-Vervollständigung in Xcode 8, noch Apple's Dokumentation die Antwort einfach lieferte. –

+1

das ist eine gültige Frage! – user363349

Antwort

101

NSIndexPath hat IndexPath

versuchen IndexPath(row: Int, section: Int)

API Reference : indexpath

Swift 3.0 Developer Preview

+1

Seltsam, wie Autocomplete für 'IndexPath' nicht funktioniert ... –

+0

Warten, bedeutet dies NSIndexPath sollte nicht mehr verwendet werden? Ich dachte, es wäre eine Unterklasse von IndexPath (IDK die Dokumentation sagt es nicht direkt) –

Verwandte Themen