【发布时间】:2011-09-29 19:15:06
【问题描述】:
我有两个类 ClassA 和 Class B(它们是 viewControllers)。
A 类是 B 类的代表。
ClassA“laucnhes”和 ClassB 的实例。
ClassB 调用 classA 上的方法。
假设是:
#import "ClassB.h"
@interface ClassA : NSObject {
ClassB* subController;
}
- (void) doThis;
-------------------------------
#import "ClassA.h"
@interface ClassB : NSObject {
ClassA* delegate;
}
-------------------------------
@implementation ClassB
- (void) someMethod {
AnObject* myObj = [self.delegate.arr objectAtIndex:8];
[self.delegate doThis];
}
这样一来,A 必须导入 B,B 必须导入 A。
如果 B 不导入 A(仅使用 @class A),则从 A 中使用的属性存在编译错误。
如果 B 导入 A,ClassA* delegateline 上会出现编译错误。
为什么会有这些编译错误? #import 不会再次保护递归调用吗?
我不需要解决方案来解决这个问题,我知道该怎么做。
但我想知道为什么我的#import 会导致这些问题。这些不是#includes...
【问题讨论】:
-
您是将
@class ClassA放在ClassB.h 还是.m 中? -
@outil:没有。但是我在#import 上的问题上犯了一个错误。问题已编辑以更正。
-
什么是编译错误,请贴出来?
标签: objective-c import header include