使用applicationDidBecomeActive使应用程序滞后并在唤醒后缓慢

时间:2014-07-25 01:32:36

标签: objective-c cocos2d-iphone spritebuilder

注意:这只发生在我使用cocos2d和spritebuilder时。我只使用了一个工作正常的单一视图应用程序尝试了相同的代码。

当使用applicationDidBecomeActive发送NSLog时,应用程序会在重新打开时变得迟钝且缓慢。这是一个非常简单的应用程序,因此它与密集的图形或流程无关。

MainScene.m

#import "MainScene.h"

@implementation MainScene

int score;

-(void)digButton {
    score++;
    scoreLabel.string = [NSString stringWithFormat:@"%i", score];
}
@end

然后这是appdelegate中的方法。

-(void)applicationDidBecomeActive:(UIApplication *)application
{
    NSLog(@"hi");
}

这种方法对cocos2d不能正常工作吗?

1 个答案:

答案 0 :(得分:0)

确保调用超级实现o CCAppDelegate方法:

-(void)applicationDidBecomeActive:(UIApplication *)application
{
    NSLog(@"hi");
    [super applicationDidBecomeActive:application];
}

如果没有这个,默认的CCAppDelegate实现将不会运行,这将恢复导演:

-(void) applicationDidBecomeActive:(UIApplication *)application
{
    [[CCDirector sharedDirector] setNextDeltaTimeZero:YES];
    if( [navController_ visibleViewController] == [CCDirector sharedDirector] )
        [[CCDirector sharedDirector] resume];
}