我试图在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
答案 0 :(得分:0)
协议定义抽象行为。
与许多其他语言的界面一样。 ABCDelegate
协议简单地声明:任何将实现我的东西,需要指定以下必需的方法,并且可以选择实现以下可选方法。
在您的情况下,您的班级需要实施所需的协议ABC
方法。
答案 1 :(得分:0)
在ABC
类中定义协议时,您将协议方法声明为@required
,如 -
@protocol ABCDelegate <NSObject>
@required
- (void) ABC:(NSString*)MessageResponseStr
@end
现在在SwiftViewController
或任何实现协议的类中,由于- (void) ABC:(NSString*)MessageResponseStr
关键字,必须添加@required
。
一旦实施该方法,错误就会消失。
希望这会有所帮助。