这是我的代码
classA.h
#import classB.h
@interface classA : UIViewController
{
classB *classb;
}
@property (nonatimic, retain) classB *classb;
@end
classA.m
@implementation classA
@synthesize classb = _classb;
-(void)someMethod
{
self.classb = [[classb alloc]initWithNibName:@"classb" bundle:nil];
[self.view.superview addSubview:self.classb.view];
[self.view removeFromSuperview];
}
@end
该代码运作良好。 classb视图正常加载。问题从这里开始
classB.h
#import classA.h
@interface classB: UIViewController
{
classA *classa;
}
@property (nonatimic, retain) classA *classa;
@end
现在在classA中我收到错误
Unknown type name classB;
我认为问题是某种递归。 想法是classA加载classB视图,在某些点classB中从superview中删除self并将classA添加为视图
答案 0 :(得分:2)
将#import classA.h
从classB.h
移至classB.m
并将@class classA
添加到classB的头文件中
如果仅在@interface
中使用类(即,您不使用该类标头中定义的@protocol
),则使用@class SomeClass
语句就足够了。
这将阻止循环包含。
classB.h:
@class classA;
@interface classB: UIViewController
{
classA *classa;
}
@property (nonatomic, retain) classA *classa;
@end
classB.m:
#import "classB.h";
#import "classA.h";
@implementation classB
/* */
@end