Estoy tratando de extender NSImageView para que pueda delegar la responsabilidad de arrastrar/soltar al controlador. Todo funciona bien con el único problema de que el compilador ahora está mostrando advertencias sobre el envío de mensajes a objetos con identificación tipo. Para resolver esto, asumí que simplemente tendría que ponerle un sufijo al tipo de ivar con el nombre del protocolo. Sin embargo, esto falla miserablemente con el mensaje de que no puede encontrar la definición para el protocolo.Definición y uso de protocolos en Object-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
¿Alguna sugerencia en la que podría estar fallando? Estoy seguro de que debe ser algo simple, pero soy bastante nuevo en obj-c.
+1 por buena pregunta. –
las palabras clave son: _forward declaration_. – holex