Как передать сообщение экземпляру из другого класса в цель c? - PullRequest
2 голосов
/ 10 июля 2010

Застрял на том, что я думаю, здесь просто.По сути, мне нужно передать указатель на объект в качестве аргумента в метод экземпляра другого класса.Сказано иначе: у меня есть класс, который создает «Вещи», и у меня есть экземпляр другого класса, который я хочу получить «Вещи».

Работа с фреймворками Cocos2D.The Things - это пользовательский подкласс CCSprite, а экземпляр, который их получает, - это CCLayer.

Я полагаю, что я неправильно понимаю что-то базовое о ivars или, возможно, свойствах здесь.Любые указатели в правильном направлении будут оценены.

Вот интерфейс для ThingLayer, который должен получить «вещь»:

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


- moveThingtoLayer:(Thing*)athing;

@end

А вот как я пытаюсь отправить сообщение наНапример, извне класса:

 [ThingLayer moveThingtoLayer:thing];

Я понимаю, что я спрашиваю у класса, а не об экземпляре ... который дает мне "может не отвечать ..." на ошибки.Но это тоже не работает (спрашивая имя экземпляра) ...

 [thingLayer moveThingtoLayer:thing];

Есть очевидные ответы?

1 Ответ

2 голосов
/ 10 июля 2010

Похоже, у вас должно быть

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

В качестве побочной мысли вы, скорее всего, захотите инициировать новую вещь в thingLayer, чтобы экземпляр владел Thing, и освободил вещь после вызова moveThingToLayer.

...