2011-05-19 85 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