小编use*_*567的帖子

协议的"预期类型"错误,编译器应该知道

最小示例"Test.h":

#import <Foundation/Foundation.h>

@protocol CallBack <NSObject>

-(void)method;

@end

@interface Test : NSObject

-(void)callback:(CallBack*)theCallback;

@end
Run Code Online (Sandbox Code Playgroud)

和相应的"Test.m":

#import "Test.h"

@implementation Test

-(void)callback:(CallBack*)theCallback
{
    [theCallback method];
}
@end
Run Code Online (Sandbox Code Playgroud)

这将为.m和.h文件中的CallBack参数提供"预期类型"错误.由于CallBack协议是在其他所有内容之前定义的,所以我无法理解为什么编译器无法找到它.如果我添加一个前向定义@class CallBack; 在头文件的开头,它将给我一个"接收器类型'CallBack',例如消息是一个前向声明"行[theCallback方法]的错误.

为什么编译器找不到协议?

cocoa objective-c forward-declaration

1
推荐指数
1
解决办法
2722
查看次数

标签 统计

cocoa ×1

forward-declaration ×1

objective-c ×1