代码之家  ›  专栏  ›  技术社区  ›  srikanth rongali

收到内存警告。级别=2。数据格式化程序暂时不可用,将在“继续”后重试

  •  0
  • srikanth rongali  · 技术社区  · 15 年前

    我正在使用cocos2d0.99.4和Xcode 4.0。因此,根据0.99.4版本中给出的文档和示例,我以这种方式更改了AppDelegate。

    - (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];  
    
    }  
    

     -(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];
    }
    

    -(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")
    

    alt text http://www.freeimagehosting.net/uploads/52ac11fe93.png

    alt text http://www.freeimagehosting.net/uploads/619333a82f.png

    1 回复  |  直到 15 年前
        1
  •  1
  •   Colin Gislason    15 年前

    这是cocos2d告诉你你做错了什么。你在打电话吗 setDirectorType goToFirstScreen ,但是你第二次叫它的时候已经有导演了。我不知道你为什么要重新启动导演。为什么不直接替换场景:

    -(void)goToFirstScreen:(id)sender
    {
        CCScene *Scene = [CCScene node];
        CCLayer *Layer = [OpeningScreen node];
        [Scene addChild:Layer];
        [[CCDirector sharedDirector] replaceScene:Scene];
    }