2012-02-25 4 views
2

Я уверен, что это ужасно просто, но это было недоумение часами.Использование * значения в нескольких классах

Скажем, у меня есть следующие настройки ниже: (упрощенный)

-(void) ClassA { 
CCSprite *boat = [CCSprite spriteWithFile:@"boat.png"]; 
[self addChild: boat]; 
} 

-(void) ClassB { 
CGPoint velocity = CGPointMake(0, 1); 
boat.position = ccpAdd(boat.position, velocity); 
} 

Как бы я сделать * лодка для ClassA использовать в ClassB?

+3

Являются ли 'ClassA' и' ClassB' двумя методами, принадлежащими к одному и тому же классу, или их именованием подразумевается, что они являются разными классами методов? – CRD

ответ

3

Сделать его переменной-членом ClassA и написать метод геттера для CCSprite *boat.

+(CCSprite *)boat 
{ 
return boat; 
} 

Теперь в классе B

[ClassA boat]; 

EDIT
Можно также использовать свойства или связанные объекты ... и работать исключительно хорошо, как предложенные Richard J. Ross III.
Если вам требуется только один экземпляр объекта в приложении, взгляните на сообщение Singletons, AppDelegates and top-level data.

+0

Вы также можете использовать свойства или связанные объекты ... оба работают исключительно хорошо. –