Ich versuche, NSImageView zu erweitern, damit ich die Drag/Drop-Verantwortung an den Controller delegieren kann. Alles funktioniert gut mit dem einen Problem, dass der Compiler jetzt Warnungen zum Senden von Nachrichten an Objekte mit Typ-ID anzeigt. Um das zu lösen, nahm ich an, dass ich einfach den Typ des Ivars mit dem Namen des Protokolls suffixieren müsste. Dies schlägt jedoch kläglich mit der Nachricht fehl, dass es die Definition für das Protokoll nicht finden kann.Definieren und Verwenden von Protokollen in objective-c
#import <Cocoa/Cocoa.h>
@interface DragDropImageView : NSImageView {
id <DragDropImageViewDelegate> _delegate;
}
@property (readwrite, retain) id <DragDropImageViewDelegate> delegate;
@end
@protocol DragDropImageViewDelegate
@optional
- (NSDragOperation)dragDropImageView:(DragDropImageView *)ddiv validateDrop:(id <NSDraggingInfo>)info;
- (BOOL)dragDropImageView:(DragDropImageView *)ddiv acceptDrop:(id <NSDraggingInfo>)info;
- (void)concludeDragOperation:(id <NSDraggingInfo>)sender;
@end
Irgendwelche Hinweise, wo ich vielleicht falsch liege? Ich bin mir sicher, dass es etwas Einfaches sein muss, aber ich bin ziemlich neu in Obj-c.
+1 für nette Frage. –
Die Schlüsselwörter lauten: _forward declaration_. – holex