我有A,B和C类,所有3个类都有2个方法。
class A
- (void)onSuccess {
}
- (void)onFailure {
}
然后我会做一个CommonClass
的任务。如果班级A
正在提交CommonClass
,并且在执行完所有任务后,我必须在班级onSuccess()
中调用onFailure()
或A
。
这是最好的方法,以及如何做到这一点?在Java中,它由extend
或abstract
完成。
答案 0 :(得分:1)
您可以创建这样的协议类。这只有一个.h文件
@protocol RequestProtocolDelegate <NSObject>
@optional
- (void)onSuccess;
- (void)onFailure;
@end
并在你的班级中使用它
档案.h
#include "RequestProtocolDelegate.h"
@interface CommonClass : NSObject <RequestProtocolDelegate> {
}
@end
文件.m
- (void)onSuccess {
}
- (void)onFailure {
}
现在您可以在您的CommonClass中使用此协议
答案 1 :(得分:0)
如果我理解正确,那么应该通过授权完成。考试:
//CommonClass.h
@protocol CommonDelegate <NSObject>
// list protocol methods...
- (void)onSuccess;
- (void)onFailure;
@optional
@interface CommonClass : NSObject
@property (nonatomic, strong) id delegate;
-(void)Task;
@end
//CommonClass.m
#import "CommonClass.h"
@synthesize delegate;
-(void)Task
{
if(do smth task){
[delegate onSuccess];
}
else{
[delegate onFailure]
}
}
// ClassA.h
#import "CommonClass.h"
@interface ClassA : NSObject <CommonClassDelegate>
@end
// ClassA.m
-(void)init
{
CommonClass *common = [[CommonClass alloc] init];
common.delegate = self;
[common Task];
}
- (void)onSuccess
{
// do smth
}
- (void)onFailure
{
// do smth
}
......对B类和C类做同样的事情