应用中有两个类都要执行protocol协议
能不能在一个类中执行另一个类的协议,然后再反过来执行?
会不会引起错误?
应用中有两个类都要执行protocol协议
能不能在一个类中执行另一个类的协议,然后再反过来执行?
会不会引起错误?
主要问题是循环依赖,你可以把协议分离出来放到每天头文件里:
ClassA.h:
#import <Foundation/Foundation.h>
#import "ClassBProtocol.h"
@interface ClassA : NSObject <ClassBProtocol>
@end
ClassB.h:
#import <Foundation/Foundation.h>
#import "ClassAProtocol.h"
@interface ClassB : NSObject <ClassAProtocol>
@end
ClassAProtocol.h:
#import <Foundation/Foundation.h>
@protocol ClassAProtocol <NSObject>
...
@end
ClassBProtocol.h:
#import <Foundation/Foundation.h>
@protocol ClassBProtocol <NSObject>
...
@end
第二种方法这样:
ClassA.h:
#import <Foundation/Foundation.h>
@interface ClassA : NSObject
@end
ClassA.m:
#import "ClassA.h"
#import "ClassB.h"
@implementation ClassA () <ClassBProtocol>
@end
@implementation ClassA
@end
ClassB.h:
#import <Foundation/Foundation.h>
@interface ClassB : NSObject
@end
ClassB.m:
#import "ClassB.h"
#import "ClassA.h"
@implementation ClassB () <ClassAProtocol>
@end
@implementation ClassB
@end