开发者

Why would my timer work on the iPad simulator but not on the iPad?

I'm working with all UIKit, and—for prototyping purposes have just shoved all the logic into the main viewController. I create some UIViews in viewDidLoad, hide some, and then set an NStimer to unhide the hidden ones in 4 seconds. This timer fires perfectly in the simulator, but will never fire on the iPad. Why could this ha开发者_开发技巧ppen and what should I even be looking for?

This is where I set my view and timer.

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

}

And here's the function that gets called when the first timer is up. This doesn't run on the iPad.

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

}


Your callback might be called not in the main thread, ui changes call only works from the main thread. If this is the case there's a method of nsobject to schedule a call to selector in the main thread, and you can call this from your callback to manipulate ui

(sorry not near my work computer)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜