NSTimer *saveProgressSizeTimer = [[NSTimer alloc] initWithFireDate:[NSDate dateWithTimeIntervalSinceNow:2.0f] interval:1.0f target:self selector:@selector(myMethod:) userInfo:myUserInfo repeats:YES];
但是,计时器不会被触发.该方法不会被调用.
如果我打印我的日期,我会得到以下内容:
2012-10-12 15:19:02.786 MyApp[1768:303] fire date: 2012-10-12 13:21:02 +0000
不应该是“2012-10-12 15:21:02”吗?不知怎的,时间错了.但为什么?如果我将时区从UTC / GMT 1小时(我坐在德国)改为另一个,那么日期仍然是2012-10-12 13:19:02再加上两秒.
我究竟做错了什么?
谢谢!
解决方法 必须将使用initWithFireDate创建的时间添加到运行循环中,例如[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
使用scheduledTimerWithTimeInterval创建在当前运行循环中自动调度的计时器.
PS:NSDate的描述方法总是使用GMT,这可能解释了你的输出.
总结以上是内存溢出为你收集整理的objective-c – NSTimer在指定日期不会被解雇全部内容,希望文章能够帮你解决objective-c – NSTimer在指定日期不会被解雇所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)