不符合协议Swift父类 - Objective C Protocol

时间:2015-06-03 05:51:42

标签: objective-c swift protocols

我试图在Swift中调用我的协议类,但是它给了我错误

  

"类型SwiftViewController不符合协议ABCDelegate。

你能告诉我我错过了什么,因为我找到了其他帖子,但没有正确解释,如果你需要更多信息,请告诉我。

@protocol ABCDelegate <NSObject>
@required
- (void) ABC:(NSString*)MessageResponseStr
@end
@interface ABC : NSObject

@property (nonatomic, assign) id<ABCDelegate> delegate;
@property(nonatomic,retain)NSString *ResponseStr;
-(void)Network:(int)NetworkState 

2 个答案:

答案 0 :(得分:0)

协议定义抽象行为。

与许多其他语言的界面一样。 ABCDelegate协议简单地声明:任何将实现我的东西,需要指定以下必需的方法,并且可以选择实现以下可选方法。

在您的情况下,您的班级需要实施所需的协议ABC方法。

答案 1 :(得分:0)

ABC类中定义协议时,您将协议方法声明为@required,如 -

@protocol ABCDelegate <NSObject>
@required
- (void) ABC:(NSString*)MessageResponseStr
@end

现在在SwiftViewController或任何实现协议的类中,由于- (void) ABC:(NSString*)MessageResponseStr关键字,必须添加@required

一旦实施该方法,错误就会消失。

希望这会有所帮助。