2 Stimmen

Wie kann man in Objective C eine Nachricht an eine Instanz einer anderen Klasse übergeben?

Ich glaube, das ist eine einfache Sache hier. Im Grunde muss ich einen Zeiger auf ein Objekt als Argument in eine Instanzmethode einer anderen Klasse übergeben. Anders ausgedrückt: Ich habe eine Klasse, die "Dinge" erzeugt und ich habe eine Instanz einer anderen Klasse, die ich die "Dinge" erhalten möchte.

Arbeiten mit Cocos2D-Frameworks. Die Things sind eine benutzerdefinierte Unterklasse von CCSprite, und die Instanz, die sie empfängt, ist ein CCLayer.

Ich vermute, dass ich hier etwas Grundlegendes über Efeu oder vielleicht Eigenschaften missverstehe. Jeder Hinweis in die richtige Richtung wäre willkommen.

Hier ist die Schnittstelle für den ThingLayer, der das "Ding" empfangen soll:

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

- moveThingtoLayer:(Thing*)athing;

@end

Und so versuche ich, der Instanz von außerhalb der Klasse eine Nachricht zukommen zu lassen:

 [ThingLayer moveThingtoLayer:thing];

Mir ist klar, dass ich hier nach der Klasse frage, nicht nach der Instanz... was mir "may not respond to..." Fehler gibt. Aber das funktioniert auch nicht (Frage nach dem Namen der Instanz)...

 [thingLayer moveThingtoLayer:thing];

Gibt es offensichtliche Antworten?

2voto

blu Punkte 12465

Sieht aus, als sollten Sie

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

Als ein Nebengedanke, möchten Sie höchstwahrscheinlich ein neues Ding in thingLayer zu initiieren, so dass die Instanz das Ding besitzt, und loslassen Ding nach dem Aufruf moveThingToLayer.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X