MPPopoverControllerDelegate.h file
#import <Foundation/Foundation.h>
@class MPPopoverController;
@protocol MPPopoverControllerDelegate <NSObject>
@optional
- (void)popoverControllerDidDismissPopover:(MPPopoverController *)popoverController;
@end
MPPopoverController.h file
#import <UIKit/UIKit.h>
@protocol MPPopoverControllerDelegate;
@interface MPPopoverController : UIViewController <MPPopoverControllerDelegate>
@property (nonatomic, assign) id<MPPopoverControllerDelegate> delegate;
@end
MPPopoverController.m file
#import "MPPopoverController.h"
#import "MPPopoverControllerDelegate.h"
@implementation MPPopoverController
@end
@property (nonatomic, assign) id<MPPopoverControllerDelegate> delegate; : this line has warning
Cannot find protocol definition for ‘MPPopoverControllerDelegate’
What is wrong? And how to fix this warning?
if replace ‘@protocol MPPopoverControllerDelegate’; with ‘#import “MPPopoverControllerDelegate.h’, everything will be ok.
But link – in Referring to Other Protocols you can see that apple says to use @protocol
Is there an absolute need for your protocol declaration to be in a different header file? Unless it’s quite a large protocol definition (which yours isn’t), I would suggest declaring it below your interface declaration.
MPPopoverController.h