2016-05-13 10 views
0

Der folgende Code führt bei jedem Speichern einer Aufgabe zu einem Absturz. Die neuen Daten müssen in den Detailansicht-Controller eingegeben und gespeichert werden. Das funktioniert, aber die App wird jedes Mal beendet. Bitte sagen Sie mir, warum dies nicht funktioniert:Unbekannter Selektor wird an Instanz Swift gesendet. 2.1

Code:

var detailViewController: DetailViewController? = nil 
var managedObjectContext: NSManagedObjectContext? = nil 


override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    self.navigationItem.leftBarButtonItem = self.editButtonItem() 

    let addButton = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: "addNewCourseWork") 
    self.navigationItem.rightBarButtonItem = addButton 
    if let split = self.splitViewController { 
     let controllers = split.viewControllers 
     self.detailViewController = (controllers[controllers.count-1] as! UINavigationController).topViewController as? DetailViewController 
    } 

    //hide blank cells 
    let backgroundView = UIView(frame: CGRectZero) 
    tableView.tableFooterView = backgroundView 

    // register for receiving notification, I need to update detail view from this exact same class, not just any MasterView class instance... 
    NSNotificationCenter.defaultCenter().addObserver(self, selector:"MasterViewController.pushNewValuesToDetail", name: "updateDetailTableValues", object: nil) 
} 

func pushNewValuesToDetail() { 
    self.performSegueWithIdentifier("showDetail", sender: nil) 
} 

Fehler:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '- MasterViewController.pushNewValuesToDetail]: unrecognized selector sent to instance 0x7fc622d1b820 
+0

Mögliches Duplikat von [unerkannter Selektor an Instanz gesendet] (http://stackoverflow.com/questions/2455161/unrecognized-selector-set-to-instance) – Michael

+0

Fühlen Sie sich frei, Ihr Problem als gelöst zu markieren, wenn es gelöst wurde . – Putz1103

Antwort

0

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(pushNewValuesToDetail), name: "updateDetailTableValues", object: nil) 

Versuchen Sie brauchen nicht die Basisklasse beachten und die neue Methode zum Erstellen eines Selektors (in der neuesten Version von Xcode) ist #selector.

+0

Das stimmt genau! Danke vielmals! –