"NSInternalInconsistencyException: не инициализировать TextureCache до Директора"

Чтобы найти решение, я перешел по этой похожей ссылке: Ошибка TextureCache от Cocos2d при интеграции в приложение UIKit, но похоже, что она имеет дело с этой ошибкой в ​​другом контексте.

Вопрос: У меня есть проект UIKit, интегрированный с Cocos2d. Когда сборка завершается успешно и запускается, но иногда падает после получения предупреждения памяти с этой ошибкой:

Ошибка подтверждения в -[CCTextureCache init], /Users/MyName/Documents/CSProject/CSProject/libs/cocos2d/CCTextureCache.m:90

Завершение работы приложения из-за неперехваченного исключения "NSInternalInconsistencyException", причина: "Не инициализировать TextureCache до Директора"

Сцена cocos2d запускается из контроллера вида при нажатии кнопки, и код приведен ниже:

В ViewController.m

-(IBAction)overToCocos:(id)sender{
    CCDirector *director = [CCDirector sharedDirector];
    CCGLView *glView = [CCGLView viewWithFrame:CGRectMake(-100, -50, 480, 480)
                                   pixelFormat:kEAGLColorFormatRGBA8
                                   depthFormat:0];
    glView.opaque = NO;
    self.imagePicker.cameraOverlayView.userInteractionEnabled = YES;
    [self.imagePicker.cameraOverlayView insertSubview:glView atIndex:0];
    [self.imagePicker.cameraOverlayView bringSubviewToFront:glView];
    [director setView:glView];
    [director runWithScene:[HelloWorldLayer scene]];
}

Так как сбой происходит после получения предупреждения памяти, я попробовал это

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
    if ( [ CCDirector sharedDirector ].view != nil ){
        [[CCTextureCache sharedTextureCache] removeUnusedTextures];
    }

}

Также добавили это в приложение AppDelegateDidReceiveMemoryWarning. Но сбой все еще существует.. Пожалуйста, укажите мне правильное направление, чтобы справиться с этой ошибкой..

Заранее спасибо!

0 ответов

Другие вопросы по тегам