为什么我的计时器可以在iPad模拟器上工作而不能在iPad上工作?

为什么我的计时器可以在iPad模拟器上工作而不能在iPad上工作?,ipad,ios,nstimer,simulator,Ipad,Ios,Nstimer,Simulator,我正在使用所有的UIKit,为了原型化的目的,我刚刚把所有的逻辑都放到了主viewController中。我在viewDidLoad中创建了一些UIView,隐藏了一些,然后设置了一个NStimer以在4秒内取消隐藏隐藏的UIView。这个计时器在模拟器中可以完美启动,但在iPad上永远不会启动。为什么会发生这种情况?我应该寻找什么 这是我设置视图和计时器的地方 - (void)viewDidLoad { [super viewDidLoad]; //snipped out long cod

我正在使用所有的UIKit,为了原型化的目的,我刚刚把所有的逻辑都放到了主viewController中。我在viewDidLoad中创建了一些UIView,隐藏了一些,然后设置了一个NStimer以在4秒内取消隐藏隐藏的UIView。这个计时器在模拟器中可以完美启动,但在iPad上永远不会启动。为什么会发生这种情况?我应该寻找什么

这是我设置视图和计时器的地方

- (void)viewDidLoad {

[super viewDidLoad];

//snipped out long code that adds UIViews as subviews and runs fine
curtainView.hidden=YES;
questionLabel.hidden=YES;

[NSTimer scheduledTimerWithTimeInterval:4
                                 target:self
                               selector:@selector(dropCurtain:)
                               userInfo:nil
                                repeats:NO];

[NSTimer scheduledTimerWithTimeInterval:5
                                 target:self
                               selector:@selector(askQuestion:)
                               userInfo:nil
                                repeats:NO];
}

这是第一个计时器启动时调用的函数。这不能在iPad上运行

-(void)dropCurtain:(NSTimer *)timer{
curtainView.hidden=NO;
//curtainView.alpha=.5;
[self.view bringSubviewToFront:curtainView];
[self.view bringSubviewToFront:triesLabel];

}

您的回调可能不在主线程中调用,ui更改调用仅在主线程中起作用。如果是这种情况,那么有一个nsobject方法来调度对主线程中选择器的调用,您可以从回调调用它来操作ui


(对不起,我的工作计算机不在附近)

您的回调可能不在主线程中调用,ui更改调用仅在主线程中有效。如果是这种情况,那么有一个nsobject方法来调度对主线程中选择器的调用,您可以从回调调用它来操作ui


(对不起,我的工作电脑不在附近)

发布一些您正在使用的代码。我的计时器似乎正在启动,我可以逐步完成Drop窗帘功能中的所有行…但屏幕没有改变,视图没有变得隐藏。发布一些您正在使用的代码。我的计时器似乎正在启动,我可以一步一步地浏览Drop窗帘功能中的所有行…但是屏幕没有改变,视图也没有变得隐藏。你所描述的比我习惯的要高级一些。如果这是原因,最简单的测试方法是什么?而且,我很难想出如何最好地执行你的建议。我尝试创建计时器,然后插入以下行:[self-performSelectorOnMainThread:@selector(Drop窗帘:)with-object:nil waitUntilDone:false];但这似乎没什么区别。你所描述的比我习惯的要高级一点。如果这是原因,最简单的测试方法是什么?而且,我很难想出如何最好地执行你的建议。我尝试创建计时器,然后插入以下行:[self-performSelectorOnMainThread:@selector(Drop窗帘:)with-object:nil waitUntilDone:false];但这似乎没有什么区别。