【发布时间】:2013-11-18 17:21:46
【问题描述】:
最小示例“Test.h”:
#import <Foundation/Foundation.h>
@protocol CallBack <NSObject>
-(void)method;
@end
@interface Test : NSObject
-(void)callback:(CallBack*)theCallback;
@end
以及对应的“Test.m”:
#import "Test.h"
@implementation Test
-(void)callback:(CallBack*)theCallback
{
[theCallback method];
}
@end
这将为 .m 和 .h 文件中的 CallBack 参数提供“预期类型”错误。由于 CallBack 协议是在其他所有内容之前定义的,我不明白为什么编译器找不到它。如果我添加一个 Forward-Definition @class CallBack;在头文件的开头,它会给我一个“接收器类型'CallBack'例如消息是前向声明”行[theCallback方法]的错误。
为什么编译器找不到协议?
【问题讨论】:
标签: objective-c cocoa forward-declaration