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 であることです。この問題の手を貸してください。よろしくお願いいたします。