2014-09-26 59 views
-3

Class1.h:如何通过子类对象访问父母方法在目标C

@interface Class1 : NSObject 
-(void) update; 
@end 
@interface Class1 (Private) -(void) private1; -(void) private2; @end 

Class1.m:

@implementation Class1 

-(void) update 
{ 
    [self private1]; 
    [self private2]; 
} 

-(void) private1 
{ 
    // some code 
NSLog(@"i used in class2"); } 

-(void) private2 
{ 
    // another code 
NSLog(@"me too used in class2"); } 

@end 

Class2.h:

@interface Class2 : Class1 

@end 

Class2.m :

@implementation Class2 

@end 

的main.m:

int main() 
{ 

Class2 *class=[[Class2 alloc]init]; 

[class update]; 

} 

的问题是:我继承类2:1类这样 ,现在我想访问过的Class2对象“类”目前Class1中的方法更新。 但我给我警告..为什么发生这种情况? 为什么我不能访问? plz告诉我有关此具体内容的全部解释

+1

这应该工作。什么是确切的警告? – Droppy 2014-09-26 12:08:02

+1

始终包含* exact *和* complete *错误消息。 – 2014-09-26 12:27:10

+0

现在一切正常....我不知道问题是什么..?它现在工作正常 – 2014-09-26 13:12:52

回答

0

您的代码应该可以工作;您可以通过子类访问update

在没有确切的错误消息,我要的猜它的编译器不知道Class2因为你还没有加入main.m如下:

#import "Class2.h" 

(为此事#import "Class1.h" in Class2.h)。

0
Class2 *class=[[Class alloc]init]; 

你应该使用Class2这里不Class。可能是一个错字。还有一件事Class是ObjC中的一种数据类型。可能是它警告你。像

Class2 *class=[[Class2 alloc]init]; 
+0

对不起...输入错误有类2 – 2014-09-26 12:20:34

+0

然后提到警告消息? – 2014-09-26 12:21:33

+0

不要使用'Class'作为类名,除非你的意思。 – 2014-09-26 12:26:20