Iphone 设备上的NSTimer比模拟器中的慢

Iphone 设备上的NSTimer比模拟器中的慢,iphone,objective-c,core-graphics,Iphone,Objective C,Core Graphics,我是iPhone开发新手。我在游戏循环中使用了[NSTimer scheduledTimerWithTimeInterval:0.01]。游戏包含drawscreen功能,我使用cgContextCliptRect剪辑大图像以制作动画 但0.01秒的速度仅在模拟器中工作,而不是在设备上。我怎样才能克服这个问题 计时器代码在控制器视图中显示为 (void)viewDidLoad { GameView *main = [[GameView alloc] initWithFrame:

我是iPhone开发新手。我在游戏循环中使用了
[NSTimer scheduledTimerWithTimeInterval:0.01]
。游戏包含drawscreen功能,我使用
cgContextCliptRect
剪辑大图像以制作动画

但0.01秒的速度仅在模拟器中工作,而不是在设备上。我怎样才能克服这个问题

计时器代码在控制器视图中显示为

(void)viewDidLoad {
    GameView *main = [[GameView alloc] 
    initWithFrame:[[UIScreen mainScreen] applicationFrame]]; 
    main.backgroundColor = [UIColor blackColor]; 
    self.view = main; 
    [main release];    
    self.tim = [NSTimer scheduledTimerWithTimeInterval: 0.01         
    target: self selector: @selector (gameloop:) userInfo: nil repeats: YES]; 
    [super viewDidLoad];
}

有人能帮我吗?

正如U62所说,100fps不是一个现实的期望,试着以每秒30到60次的速度运行它,看看它是如何运行的。此外,如果您编写的游戏需要以高帧速率运行,您应该考虑在OpenGL中编写它


一个选项可能是每勾选一次处理逻辑,但仅每隔几勾选一次就绘制到屏幕上。

NSTimer是此作业的错误工具。它不是一个实时计时器。它不能保证何时发射,而且你很容易错过画面


关于如何在计算机上开发此类程序,有很多很好的建议。请特别注意对苹果示例代码的引用。

我的意思是,例如,当我制作帧动画时,帧在模拟器中以正确的速度显示。 但在这个设备中,它显示的速度非常慢(FPS),换句话说,一个男孩在模拟器中跑得很快
他行走的设备。

100次每秒更新可能有点乐观;改为尝试1.0/30.0。此外,要更加具体。你说设备“不工作”,但你说“不工作”是什么意思?