0
我是Objective-C的新手...希望標題中的術語是正確的...但無論如何。我正在學習一個教程,並且在某些指針的實例出現的時候有點困惑。我從來沒有看到他們明確定義,然後教程將修改它們。舉個例子,看下面(我試圖只包括必要的代碼,我把星號*旁邊的線我最困惑。基本上我不知道哪裏_meta
和_hud
來自以及如何可以調用他們的方法,如果他們是hud
和meta
,沒有_
),我想我會不那麼困惑。謝謝,對不起,如果這是一個業餘愛好者的問題。Objective-C無法知道指針的實例來自何處
@interface PlayGameLayer()
@property (strong) CCTMXLayer *meta;
@property (strong) HudLayer *hud;
@end
+(CCScene *) scene
{
CCScene *scene = [CCScene node];
PlayGameLayer *layer = [PlayGameLayer node];
[scene addChild: layer];
HudLayer *hud = [HudLayer node];
[scene addChild:hud];
layer.hud = hud;
return scene;
}
-(id) init
{
if((self=[super init])) {
....
self.meta = [_tileMap layerNamed:@"Meta"];
_meta.visible = NO; **********************************************
....
}
return self;
}
-(void)setPlayerPosition:(CGPoint)position {
CGPoint tileCoord = [self tileCoordForPosition:position];
int tileGid = [_meta tileGIDAt:tileCoord];
if (tileGid){
NSDictionary *properties = [_tileMap propertiesForGID:tileGid];
if (properties){
NSString *collectible = properties[@"Collectable"];
if (collectible && [collectible isEqualToString:@"True"])
{
[_meta removeTileAt:tileCoord]; ****************************************
self.numCollected++;
[_hud numCollectedChanged:_numCollected];*********************************
}
}
}
_player.position = position;
}
@implementation HudLayer
{
CCLabelTTF *_label;
}
- (id)init
{
self = [super init];
if (self) {
....
}
return self;
}
@end
非常感謝!我知道這種性質必須繼續=) – spaderdabomb
而且,在你需要添加@synthesize之前,你需要明確聲明實例變量。過去五年來我們走過了很長的一段路。 – Chuck