2012-02-05 66 views
1

处理这里是我的代码的意见和递归

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从上海华删除自身,并从classB.h添加CLASSA作为视图

回答

2

#import classA.hclassB.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 
+0

感谢很多人。它做到了! – objlv 2012-02-05 09:08:32