无法使用NSObject作为参数定义协议

时间:2011-08-04 19:23:21

标签: objective-c

对于我的生活,我无法弄清楚这个协议声明有什么问题。在@requred:

之后,我收到了以下错误

预期*之前* 在'MyService'之前预期')'

@protocol MyServiceDelegate

@required
- (void)requestFinished:(MyService *)service;
@end

@interface MyService : NSObject

@property (nonatomic, assign) id <MyServiceDelegate>delegate;
@property (nonatomic, assign) NSURLConnection *connection;

@end

3 个答案:

答案 0 :(得分:5)

编译MyServiceDelegate协议时,编译器不知道MyService类。您可以使用前向声明来解决此问题:

@class MyService;

@protocol MyServiceDelegate
// implementation continues

答案 1 :(得分:1)

在出错时,编译器不知道您的MyService类 - 添加

@class MyService;

之前

@protocol MyServiceDelegate

它应该完美无缺。

答案 2 :(得分:0)

您应该在协议之前添加@class MyServive;。你在协议中使用它。