Я пытаюсь расширить NSImageView, чтобы я мог передать ответственность перетаскивания контроллеру. Все это прекрасно работает с одной проблемой - теперь компилятор отображает предупреждения об отправке сообщений объектам с идентификатором типа. Чтобы решить эту проблему, я предположил, что мне просто нужно добавить суффикс типа ивара к имени протокола. Однако это с треском проваливается с сообщением, что он не может найти определение для протокола.
#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
Есть какие-нибудь указатели, где я могу ошибаться? Я уверен, что это должно быть что-то простое, но я совершенно новичок в obj-c.