2 lpploverou LPPloveROU 于 2012.12.05 10:03 提问

在objectiveC中两个类的协议

应用中有两个类都要执行protocol协议

能不能在一个类中执行另一个类的协议,然后再反过来执行?

会不会引起错误?

1个回答

prettYYoyic
prettYYoyic   2012.12.05 10:42
已采纳

主要问题是循环依赖,你可以把协议分离出来放到每天头文件里:

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
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!