协议无效

时间:2012-04-28 16:04:33

标签: objective-c protocols

这是一个非常愚蠢的错误,我敢肯定,但我找不到它 我发现的主要是忘记#import行的人 我没有。 我对objective-c很新,并尝试过协议,但我现在有8个错误...
我很确定它是协议,因为我的协议中有2个错误,所有其他错误都说'无法找到协议定义'我认为是由协议中的错误引起的。
这是代码:

#import <UIKit/UIKit.h>
#import "CongTile.h"


@protocol TileDelegate

- (UIColor *)colorForTile:(CongTile *)tile; // Expected ')' before 'CongTile'
- (BOOL) drawArmyOnTile:(CongTile *)tile; // same error

@end

1 个答案:

答案 0 :(得分:4)

尝试丢失#import "CongTile.h",转而使用@class CongTile;

如果您使用#import并且两个文件最终互相导入,则创建一个导入循环。


旁注

假设任何实现TileDelegate的类都是NSObject的后代,您可能希望将协议声明为

@protocol TileDelegate <NSObject>

这样编译器就知道,只要在代码中使用id<TileDelegate> delegate,对象就会响应<NSObject>