2011-05-19 89 views
0

我有一个实现协议的类。在MyProtocol,我有两个属性:类是否继承objective-c中的协议?

@protocol MyProtocol <NSObject> 
    @property(nonatomic, retain) NSObject *stuff; 
    @property(nonatomic, retain) NSString *stringStuff; 
@end 

我类实现如图所示的协议

部首的.h

@interface MyClass : UIViewController <MyProtocol> 
... 

Implementation.m

@implementation MyClass 
    @synthesize stuff; 
    @synthesize stringStuff; 
... 

我有一个类继承自MyClass ...

@interface MySubClass : MyClass 

当我尝试访问MySubClass中的东西和stringStuff时,出现MySubClass没有名为'stringStuff'的成员的错误。

我如何获得子类能够访问这些父类的成员?

回答

0

您将需要在子类中使用属​​性访问权限,当您试图直接访问ivars吗?

编辑:刚才意识到我没有回答你原来的问题。是的,如果一个超类实现了一个协议,那么这个子类也是如此。

+0

我想要得到存储在myClass的stringStuff,从MySubClass ....它没有让我这样做。 – John 2011-05-19 22:04:07

+0

你能提供更多的细节吗?你得到了什么确切的错误?它是编译器警告还是运行时错误? – jjwchoy 2011-05-19 23:43:14

0

而不是尝试从超类直接访问ivars,使用访问器方法:例如, self.stuff和self.stringStuff而不是stuff和stringStuff。希望这可以帮助。

-R