UIImagePickerController
erbt von UINavigationController
. Die Delegateigenschaft ist Teil von UINavigationController
, daher muss der Delegat dem UINavigationControllerDelegate
-Protokoll entsprechen.
Die delegate property ist wie so erklärt:
@property(nonatomic, assign) id<UINavigationControllerDelegate> delegate;
Dies teilt den Compiler, um zu überprüfen, dass der Controller das UINavigationConrollerDelegate
Protokoll umsetzt. Die Überprüfung ist vorhanden, sodass eine Kompilierungswarnung generiert werden kann, wenn Ihre Controller-Klasse nicht alle Methoden korrekt implementiert, die die UINavigationController
an ihren Delegaten senden könnte.
Wenn Sie nach einer Lösung suchen, können Sie (in Ihrer Controller-Klasse-Schnittstelle) zeigen, dass der Controller mit dem Protokoll kompatibel ist:
@interface MyController : NSObject <UINavigationControllerDelegate>
...
@end
Sobald dies geschehen ist, wird der Compiler warnen Sie alle erforderlichen Delegate-Methoden, die Sie nicht implementiert haben. Dies ist eine gute Sache, da es Sie davon abhält, Code zu veröffentlichen, der versehentlich einen Laufzeitfehler "Methode nicht gefunden" auslösen könnte.
Vielen Dank für diese, ich kam gerade über diesen Fehler und Ihnen zur Verfügung gestellten eine schnelle Lösung :) – KomodoDave
@KomodoDave: Glad zu helfen! ':)' –
@ e.James Schnittstelle MyController: NSObject ... –
yunas