Мне нужно передать массив из InGameLayer в AppDelegate, так вот что я сделалне в состоянии получить доступ к массиву через синглтон
в InGameLayer.h
@interface InGameLayer : CCLayer
@property (nonatomic, strong) CCArray *heroArray;
+(InGameLayer *)sharedInGameLayer;
в InGameLayer.m
static InGameLayer* sharedInGameLayer;
+(InGameLayer*)sharedInGameLayer
{
if (sharedInGameLayer == nil)
{
sharedInGameLayer = [[self alloc] init];
}
return sharedInGameLayer;
}
//add Object if the button is tapped
- (void)PlayerButton1Tapped:(id)sender
{
CCSprite *hero =[CCSprite spriteWithFile:@"hero.png"];
[_heroArray addObject:hero];
}
в AppDelegate.m
-(void) applicationDidEnterBackground:(UIApplication*)application
{
CCArray *heroArray = [InGameLayer sharedInGameLayer].heroArray;
CCLOG(@"array = %d", heroArray.count);
}
И проблема в том, что array = 0, независимо от того, сколько Object I добавлено в heroArray. Пожалуйста, дайте мне руку на эту проблему. Заранее благодарю за ваше время.
Привет, да я инициализировать мой массив, как это в моем методе инициализации. Проблема в том, что я не добавлял свой объект внутри метода init. Я хочу, чтобы пользователь добавил объект, нажав кнопку. И объект никогда не переходит к AppDelegate (массив равен нулю в AppDelegate). Можете ли вы предложить способ сделать это? Спасибо за ваш ответ – user1817517