2012-07-18 82 views
0

我有classA,它有一些在.h文件(數組,字符串等)中聲明的變量,並且在它的.m文件中它具有對這些變量執行操作的方法。使用繼承

我即將創建classB,它將在其.m中使用所有相同的方法,並且在它的.h中使用大部分相同的變量。

我一直在閱讀,但我仍然困惑。我知道我需要使用繼承,但我不確定如何。

我想我需要做的:

classA.h

@interface classA{ 
NSMutableArray *myArray; 
NSString *myString; 
} 

classA.m

#import classA.h 
@implementation classA 

-(void)displayArray{ 
for(int x = 0; count < [myArray count], x++){ 
NSLog(@"%@", [myArray objectAtIndex:x]; 
} 

classB.h

#import "classA.h" 
@interface classB{ 
} 

classB.m

#import "classB.h" 
#import "classA.m" 
@implementation classB 

-(void)viewDidLoad{ 
[self displayArray]; 
} 

我想CLASSB有它自己的myArray,然後當displayArray被稱爲CLASSB,它會顯示CLASSB的myArray。我需要爲更多的課程重複這一點,但我現在只是試圖讓它與A和B一起工作。

謝謝。


編輯:我只是編了這個例子,它不是實際的代碼。

+1

您不需要在#classB.m **文件中''導入'classA.m'文件。 – holex 2012-07-18 15:02:55

+0

謝謝,這與@holex所說的相結合 – BloonsTowerDefence 2012-07-18 15:11:34

回答

0

它是簡單的作爲一個1x1的:)

@interface classB : classA { 

// ... 

} 

// ... 

@end 

和之後的classB的每個實例都擁有一切什麼classA了。

+0

好吧,我補充說,它現在識別了classB中的'displayArray'方法。但我得到一個錯誤:'鏈接器命令失敗,退出代碼1' – BloonsTowerDefence 2012-07-18 15:03:12

+0

有沒有更多的錯誤的細節?這是非常通用的......許多事情都可能導致它:從缺少的頭文件,到錯誤的編譯器配置... – holex 2012-07-18 15:06:57

+0

謝謝,我添加了這個,並從classB.m中移除了'#import「classA.m」',一切正常。我認爲這個錯誤是因爲我導入了兩次 – BloonsTowerDefence 2012-07-18 15:13:15

0

你的classB需要繼承classA,這就是全部。

在你的classB類中你可以修改myArray伊娃,displayArray方法會正確記錄它。