2013-03-06 5 views
0

У меня есть простой вопрос. Мне нужно передать массив, который я использовал в mainGameScene для appDelegate, и следующая упрощенная версия моего кода.как передать массив AppDelegate.m?

в mainGameScene.h

@interface mainGameScene : CCLayer 
{ 
    CCArray *gameObjectArray; 
} 

и mainGameScene.m У меня есть метод, чтобы получить массив:

-(CCArray)getArray: 
{ 
    return gameObjectArray; 
} 

в AppDelegate.h, я создаю экземпляр mainGameScene:

@interface AppController : NSObject <UIApplicationDelegate, CCDirectorDelegate> 
{ 
    mainGameScene *mainGameScene; 
} 

в AppDelegate.m, я пытаюсь получить доступ к массиву:

-(void) applicationDidEnterBackground:(UIApplication*)application 
{ 
    CCArray *gameObjectArray = [mainGameScene getArray]; 
    CCLOG(@"numOfObjects = %d", getArray.count); 
} 

по некоторым причинам numOfObjects он распечатывает всегда 0;

Может ли кто-нибудь дать мне быстрый ответ на вопрос, почему это происходит? и как его реализовать? Благодарим вас за продвинутые ответы.

ответ

0

Не следует ли AppDelegate выглядеть следующим образом:

-(void) applicationDidEnterBackground:(UIApplication*)application 
{ 
    CCArray *gameObjectArray = [mainGameLayer getArray]; 
    CCLOG(@"numOfObjects = %d", gameObjectArray.count); 
} 

Я не вижу, где эти другие переменные как.

+0

О, я ошибся, я его очищу, извините. любая идея, что происходит не так? – user1817517

+0

У вас есть 'inGameLayer', упомянутый в вашем коде, а также' getArray' как переменная, а не метод. –

+0

ОК, я только что исправил, теперь это имеет больше смысла? Можете ли вы сказать мне, почему gameObjectArray.count всегда 0? – user1817517

Смежные вопросы