Получено предупреждение памяти.Уровень = 2.Форматирование данных временно недоступно, повторная попытка после продолжения - PullRequest
0 голосов
/ 24 июня 2010

Я использую cocos2d 0.99.4 и Xcode 4.0.Итак, я изменил свой AppDelegate таким образом в соответствии с документацией и примером, приведенным в версии 0.99.4.

- (void) applicationDidFinishLaunching:(UIApplication*)application
{
    window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    [CCDirector setDirectorType:kCCDirectorTypeDisplayLink];
    CCDirector *director = [CCDirector sharedDirector];
    [director setDeviceOrientation:kCCDeviceOrientationLandscapeLeft];
    [director setAnimationInterval:1.0/60];
    [director setDisplayFPS:NO];
    EAGLView *glView = [EAGLView viewWithFrame:[window bounds]
                               pixelFormat:kEAGLColorFormatRGBA8            
                               depthFormat:GL_DEPTH_COMPONENT24_OES   
                    preserveBackbuffer:NO];

    [[CCDirector sharedDirector] setOpenGLView:glView];

    [window addSubview:glView];
    [window makeKeyAndVisible]; 

    [CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];
    gameLevel = [[NSUserDefaults standardUserDefaults] integerForKey:@"gameLevel"] ;
    gameLevel = 1;

    CCScene *scene = [CCScene node];
    CCLayer *layer = [GamewinScreen node];  
    [scene addChild :layer];

    [[CCDirector sharedDirector] runWithScene: scene];  

}  

// Метод test1 также находится в классе делегата приложения.

 -(void)test1
{

    [[CCDirector sharedDirector] end];
    [[CCDirector sharedDirector] setOpenGLView:[[window subviews] objectAtIndex:0]];    

    CCScene *Scene = [CCScene node];
    CCLayer *Layer = [OpeningScreen node];

    [Scene addChild:Layer]; 

    [[CCDirector sharedDirector] runWithScene: Scene];
}

В GameWinScreen у меня есть селектор @selector (goToFirstScreen),

-(void)goToFirstScreen:(id)sender
{
    [MY_DELEGATE performSelector:@selector(test1) withObject:nil afterDelay:1.0];
 }   

После игры в течение 50 минут и более я получаю

Received memory warning. Level=1  

более 10 раз, а затем
Получено предупреждение о памяти.Уровень = 2

и приложение падает.выдача следующего сообщения

Program received signal:  “0”.
Data Formatters temporarily unavailable, will re-try after a 'continue'. (Unknown error loading shared library "/Developer/usr/lib/libXcodeDebuggerSupport.dylib")

альтернативный текст http://www.freeimagehosting.net/uploads/52ac11fe93.png

альтернативный текст http://www.freeimagehosting.net/uploads/619333a82f.png

1 Ответ

1 голос
/ 25 июня 2010

Это cocos2d, говорящий вам, что вы делаете что-то не так. Вы звоните setDirectorType на директора в goToFirstScreen, но во второй раз, когда вы звоните, уже есть директор. Я не уверен, почему вы перезапускаете режиссера. Почему бы просто не заменить сцену:

-(void)goToFirstScreen:(id)sender
{
    CCScene *Scene = [CCScene node];
    CCLayer *Layer = [OpeningScreen node];
    [Scene addChild:Layer];
    [[CCDirector sharedDirector] replaceScene:Scene];
}   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...