2016-05-10 13 views
0

Ich habe bereits zwei ViewControllers, aber ich wollte noch eine hinzufügen ... aber aus irgendeinem Grund bekomme ich immer die Fehler unten. Es gibt keinen Code, den ich hinzugefügt habe, aber ich füge grafisch eine IBAction hinzu, um von ViewController zu ViewController3 zu gelangen.Hinzufügen einer Schaltfläche, um zu einer neuen Ansicht zu gelangen und diesen Fehler zu erhalten - [ViewController setData:]: unerkannter Selektor an Instanz 0x7f962ae90cf0 gesendet

2016-05-10 12:26:35.259 App-Title[26519:525203] -[ViewController3 setData:]: unrecognized selector sent to instance 0x7f962ae90cf0 
2016-05-10 12:26:35.300 App-Title[26519:525203] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ViewController3 setData:]: unrecognized selector sent to instance 0x7f962ae90cf0' 
*** First throw call stack: 
(
    0 CoreFoundation      0x000000010a8eed85 __exceptionPreprocess + 165 
    1 libobjc.A.dylib      0x000000010a055deb objc_exception_throw + 48 
    2 CoreFoundation      0x000000010a8f7d3d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205 
    3 CoreFoundation      0x000000010a83dcfa ___forwarding___ + 970 
    4 CoreFoundation      0x000000010a83d8a8 _CF_forwarding_prep_0 + 120 
    5 App-Title       0x0000000109b43c85 -[ViewController prepareForSegue:sender:] + 149 
    6 UIKit        0x000000010bab45d5 -[UIStoryboardSegueTemplate _performWithDestinationViewController:sender:] + 369 
    7 UIKit        0x000000010bab4433 -[UIStoryboardSegueTemplate _perform:] + 82 
    8 UIKit        0x000000010bab46f7 -[UIStoryboardSegueTemplate perform:] + 156 
    9 UIKit        0x000000010b36ea8d -[UIApplication sendAction:to:from:forEvent:] + 92 
    10 UIKit        0x000000010b4e1e67 -[UIControl sendAction:to:forEvent:] + 67 
    11 UIKit        0x000000010b4e2143 -[UIControl _sendActionsForEvents:withEvent:] + 327 
    12 UIKit        0x000000010b4e1263 -[UIControl touchesEnded:withEvent:] + 601 
    13 UIKit        0x000000010b3e199f -[UIWindow _sendTouchesForEvent:] + 835 
    14 UIKit        0x000000010b3e26d4 -[UIWindow sendEvent:] + 865 
    15 UIKit        0x000000010b38ddc6 -[UIApplication sendEvent:] + 263 
    16 UIKit        0x000000010b367553 _UIApplicationHandleEventQueue + 6660 
    17 CoreFoundation      0x000000010a814301 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 
    18 CoreFoundation      0x000000010a80a22c __CFRunLoopDoSources0 + 556 
    19 CoreFoundation      0x000000010a8096e3 __CFRunLoopRun + 867 
    20 CoreFoundation      0x000000010a8090f8 CFRunLoopRunSpecific + 488 
    21 GraphicsServices     0x000000010f3ccad2 GSEventRunModal + 161 
    22 UIKit        0x000000010b36cf09 UIApplicationMain + 171 
    23 App-Title       0x0000000109b4a6ff main + 111 
    24 libdyld.dylib      0x000000010d79092d start + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 
+0

Kannst du Code anzeigen und wie du deinen View Controller mit Hilfe von segue gedrückt hast? Ich wette, das Problem kommt von der Segue-Überleitung. –

+0

Sie setzen Daten Eigenschaft in Viewcontroller auf einen falschen Wert, der Absturz der App –

+0

@ Mj.B Ich habe keinen Code geschrieben, ich habe die Schaltfläche im Storyboard erstellt, rechts angeklickt und Drogen zu ViewController3, und ausgewählt modal. – 1QuickQuestion

Antwort

0

Haben Sie Methode namens Objekt setData irgendwo aus dem Code mit ViewController3 des benannt? ... der Fehler bedeutet, dass Sie eine Methode aufrufen, die in bestimmten Klasse existiert nicht ... versuchen setData in Ihrem Projekt zu suchen. ..check, wenn es mit dem Objekt ViewController3 aufgerufen wurde ... hoffe, es hilft ... :)

+0

Ich habe keinen Code geschrieben, ich habe die Schaltfläche im Storyboard erstellt, rechts angeklickt und Droge zu ViewController3 und ausgewähltem modal. Gibt es eine schnelle Suchfunktion, die ich verwenden kann, um das zu finden? – 1QuickQuestion

+0

benutze Befehl + shift + f und Suchmethode 'setData' im ganzen Projekt ... überprüfe, welche Aufrufe an diese Methode gesendet werden ... Ich habe mit diesem Fehler beim Entwickeln von app behandelt ... Sie rufen wahrscheinlich 'setData' mit ViewController3-Objekt ... oder dies passiert möglicherweise http://StackOverflow.com/questions/2455161/unrecognized-selector-sent -to-instance – sanman

+0

"Keine Ergebnisse für 'setData' In Project" kommt bei meiner Suche auf – 1QuickQuestion

0

Wenn Sie eine IBAction setzen, dann entscheiden Sie, sie nur zu löschen, indem Sie den Code aus Ihrem View Controller entfernen oder die Methode ändern Name in Ihrem View-Controller durch Ändern des automatisch generierten IBAction-Codes (ähnlich wie unten):

@IBAction func setData(sender: AnyObject) { print("Button pressed...") }

Sie werden diesen Absturz bekommen.

Der Grund ist, dass, wenn Ihr View-Controller erstellt wird, Sie ihm mitgeteilt haben, dass der Selektor setData(sender: AnyObject) existiert. Wenn Sie diesen Code in Ihrem View-Controller löschen oder ändern, ohne die Referenz in Ihrem Storyboard zu löschen, wird ein Absturz aufgrund eines nicht definierten Selektors verursacht.

Ich vermute, Sie haben irgendwann eine IBAction mit einer Methode erstellt und gelöscht oder änderte seinen Namen in der View-Controller.

dies zu beheben:

1) Rechtsklick auf die Schaltfläche (oder was auch immer Sie die IBAction zu) Controller im Storyboard hinzugefügt.

2) Suchen Sie in der angezeigten Ansicht nach der setData: -Methode.

IBAction Storyboard Reference

3) Klicken Sie auf das x neben dem Methodennamen. Dies löscht die IBAction aus dem Storyboard.

+0

Ich entfernte das und fügte es zurück, aber ich sehe immer noch einen Absturz. Das einzige, was ich tat, war Rechtsklick und wählen Modal beim Ziehen auf den Ziel-ViewController. Soll ich stattdessen "Touch Up Inside" wählen? – 1QuickQuestion

+0

Das ist dann leider nicht dein Problem. Entschuldigung! Haben Sie oder hatten Sie eine setData Methode oder IBAction? Oder eine Eigenschaft namens Daten? – user3847320

+0

Keine Sorge, ich schätze jede Hilfe, die ich bekommen kann! Ja, ich denke (weiß), dass ich mich viel zu schnell bewegt habe und ich glaube, dass ich doppelte Verweise auf die IBAction hinzugefügt habe. Ich habe den View-Controller hinzugefügt und das Layout gestartet, dann mit der rechten Maustaste auf den ViewController 1 geklickt> den ViewController3 ausgewählt> Modal ausgewählt. Dann habe ich das selbe für den Button ViewController3 in ViewController getan. Einige Zeit nach der Überprüfung einiger Code, ging ich und drehe den Button in die ViewController.h als IBAction (sowie das Hinzufügen der UIbutton Deklaration) und tat das gleiche für die Schaltfläche auf der ViewController3.h. – 1QuickQuestion