开发者

How to pass message to instance from a different class in objective c?

Stuck on what I figure is simple thing here. Basically I need to pass a pointer to an object as an argument into an instance method o开发者_如何转开发f another class. Said differently: I have a class that creates "Things" and I have an instance of another class that I want to receive the "Things."

Working with Cocos2D frameworks. The Things are a custom subclass of CCSprite, and the instance that receives them is a CCLayer.

I figure I'm misunderstanding something basic about ivars or maybe properties here. Any pointers in the right direction would be appreciated.

Here's the interface for ThingLayer, which should receive the "thing":

@interface ThingLayer: CCLayer {
 CCTextureAtlas *textureAtlas; 
 ThingLayer *thingLayer;
 NSMutableArray *ThingsArray;
}


- moveThingtoLayer:(Thing*)athing;

@end

And here's how I'm trying to message to the instance, from outside the class:

 [ThingLayer moveThingtoLayer:thing];

I realize I'm asking the class here, not the instance... which is giving me "may not respond to..." errors. But this isn't working either (asking name of instance)...

 [thingLayer moveThingtoLayer:thing];

Any obvious answers?


Looks like you should have

ThingLayer *thingLayer = [[ThingLayer alloc] init]; 
[thingLayer moveThingtoLayer: thing];

As a side thought, you most likely want to init a new thing in thingLayer so that instance owns the Thing, and release thing after calling moveThingToLayer.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜