2016-08-08 14 views
3

Ich habe Probleme mit dem Zugriff auf Fotobibliothek, wenn die Schaltfläche angetippt wird. Wie immer frage ich, ob es zugänglich ist. Unten ist mein CodeAbsturz nach dem Zugriff auf Fotobibliothek mit UIImagePickerController

@IBAction func photoLibraryButtonTapped(sender: UIButton) { 

     if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.PhotoLibrary) { 
      let imagePicker = UIImagePickerController() 
      imagePicker.delegate = self 
      imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary 
      imagePicker.allowsEditing = true 
      self.presentViewController(imagePicker, animated: true, completion: nil) 
     } 
    } 

Und hier ist das, was Xcode sagt:

2016-08-08 23:05:11.209 Auyrma[1799:20237892] -[UIViewController photoLibraryButtonTapped:]: unrecognized selector sent to instance 0x7fd3e9d39ed0 
2016-08-08 23:05:11.214 Auyrma[1799:20237892] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController photoLibraryButtonTapped:]: unrecognized selector sent to instance 0x7fd3e9d39ed0' 
*** First throw call stack: 
(
    0 CoreFoundation      0x0000000113fdcd85 __exceptionPreprocess + 165 
    1 libobjc.A.dylib      0x0000000113a50deb objc_exception_throw + 48 
    2 CoreFoundation      0x0000000113fe5d3d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205 
    3 CoreFoundation      0x0000000113f2bcfa ___forwarding___ + 970 
    4 CoreFoundation      0x0000000113f2b8a8 _CF_forwarding_prep_0 + 120 
    5 UIKit        0x00000001124d6a8d -[UIApplication sendAction:to:from:forEvent:] + 92 
    6 UIKit        0x0000000112649e67 -[UIControl sendAction:to:forEvent:] + 67 
    7 UIKit        0x000000011264a143 -[UIControl _sendActionsForEvents:withEvent:] + 327 
    8 UIKit        0x0000000112649263 -[UIControl touchesEnded:withEvent:] + 601 
    9 UIKit        0x000000011254999f -[UIWindow _sendTouchesForEvent:] + 835 
    10 UIKit        0x000000011254a6d4 -[UIWindow sendEvent:] + 865 
    11 UIKit        0x00000001124f5dc6 -[UIApplication sendEvent:] + 263 
    12 UIKit        0x00000001124cf553 _UIApplicationHandleEventQueue + 6660 
    13 CoreFoundation      0x0000000113f02301 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 
    14 CoreFoundation      0x0000000113ef822c __CFRunLoopDoSources0 + 556 
    15 CoreFoundation      0x0000000113ef76e3 __CFRunLoopRun + 867 
    16 CoreFoundation      0x0000000113ef70f8 CFRunLoopRunSpecific + 488 
    17 GraphicsServices     0x00000001164bcad2 GSEventRunModal + 161 
    18 UIKit        0x00000001124d4f09 UIApplicationMain + 171 
    19 Auyrma        0x000000010e1c2d82 main + 114 
    20 libdyld.dylib      0x0000000114e8492d start + 1 
    21 ???         0x0000000000000001 0x0 + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 
+0

Haben Sie überprüft, ob die IBAction korrekt mit einer Taste verbunden ist? ODER wo rufst du die Methode photoLibraryButtonTapped an? –

+0

@teja yeap, doppelt überprüft. alles ist in Ordnung –

+0

Haben Sie die Klasse zu Ihrem 'UIViewController' in IB gesetzt? –

Antwort

7

1.Bitte Prüfziel Ihres View-Controller und Storyboard-Dateien sollten in gleichem Ziel. 2.Wählen Sie Ihre XIB und entfernen Sie Ihre Klasse, die diesem Storyboard zugeordnet ist, und ordnen Sie sie zurück und drücken Sie die Eingabetaste, sobald Sie Ihre Klasse einfügen. 3. Wenn diese Schaltfläche geladen wird, muss die benutzerdefinierte Ansicht zum Anzeigen des Controllers überprüft werden, ob benutzerdefinierte Ansichten zum richtigen Ziel hinzugefügt werden und die Nachbearbeitung innerhalb von Ibaction erneut vorgenommen wird.

Das ist, was ich herausfinden konnte, indem Sie Ihre Gespräche sehen.

0

ich mein Problem auf diese Weise gelöst haben:

  1. die Utilites
  2. Öffnen Sie die Identität Inspector Aufmachen
  3. Geben Sie den Klassennamen erneut ein (jedoch war es bereits dort)

Es scheint, wie es ein Fehler von Xcode ...

war