我有这样的协议:
#import <Foundation/Foundation.h>
@protocol Prot1 <NSObject>
@required
- (void)methodInProtocol;
@end
这是我想存储在这样的类中的委托的协议:
#import <Cocoa/Cocoa.h>
@class Prot1;
@interface Class1 : NSObject
@property (nonatomic, strong) Prot1 *delegate;
- (void)methodInClass;
@end
这个类的实现是这样的:
#import "Class1.h"
#import "Prot1.h"
@implementation Class1
@synthesize delegate;
- (void)methodInClass {
[delegate methodInProt];
}
@end
当我构建这些代码时,我收到以下错误:
Receiver type 'Prot1' for instance message is a forward declaration
这里有什么问题?我确实明白我必须通过@class 为协议做一个前向声明,我认为我只需要在类实现中#import 协议......不是吗?