0

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);
}

そして問題は、heroArray に追加したオブジェクトの数に関係なく、配列 = 0 であることです。この問題の手を貸してください。よろしくお願いいたします。

4

1 に答える 1