2012-08-26 41 views
0

我是Objective-C的新手。我的大部分經驗都在Java中。我有一個基類:GNUStep上的Objective-C:訪問父類的ivars

@interface Bug : NSObject <BugProtocol> { 

    @private 
    World* world; 
    NSString* name; 
    NSString* layer; 
    long x; 
    long y; 
    BOOL alive; 

... 
... 


} 

... 
... 

@end 

和類擴展這個基類:

@interface RandomBug : Bug 
    ... 
    ... 
@end 

然而,當我試圖訪問我在父類中所定義的屬性,編譯器會抱怨它無法找到它們。我見過的訪問屬性的大部分示例都是針對OS X定製的(即,使用諸如@property之類的東西,據我所知,在GNUStep中並未完全支持這些示例)。

+0

那麼,你如何聲明這些屬性呢?另外,GNUstep不支持或不支持關鍵字 - 它是編譯器。 – 2012-08-26 17:21:48

回答

1

我想通了。我只需要使用@protected(就像在Java中一樣):

@interface Bug : NSObject <BugProtocol> { 

    @protected 
    World* world; 
    NSString* name; 
    NSString* layer; 
    long x; 
    long y; 
    BOOL alive; 

... 
... 


} 

... 
... 

@end 
+2

這些不是屬性,但Ivars,Objective-C中的巨大差異! – JustSid

+0

哎呀,對不起。 Objective-C中兩者有什麼區別? –

+2

http://stackoverflow.com/questions/719788/property-vs-instance-variable –