2012-02-05 65 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