Dan*_*iel 4 cocoa objective-c nsdate nstimer
我正在创建一个NSTimer:
NSTimer *saveProgressSizeTimer = [[NSTimer alloc]
initWithFireDate:[NSDate dateWithTimeIntervalSinceNow:2.0f]
interval:1.0f
target:self
selector:@selector(myMethod:)
userInfo:myUserInfo
repeats:YES];
Run Code Online (Sandbox Code Playgroud)
但是,计时器不会被触发.该方法不会被调用.如果我打印我的日期,我会得到以下内容:
2012-10-12 15:19:02.786 MyApp [1768:303]发布日期:2012-10-12 13:21:02 +0000
不应该是"2012-10-12 15:21:02"吗?不知怎的,时间错了.但为什么?如果我将时区从UTC/GMT +1小时(我坐在德国)改为另一个,那么日期仍然是2012-10-12 13:19:02再加上两秒.
我究竟做错了什么?
谢谢!
Mar*_*n R 16
initWithFireDate
必须将创建的时间添加到运行循环中,例如
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
Run Code Online (Sandbox Code Playgroud)
使用scheduledTimerWithTimeInterval
来创建自动安排对当前运行的循环计时器.
PS:使用description
方法NSDate
总是GMT,这可能解释了你的输出.
归档时间: |
|
查看次数: |
3260 次 |
最近记录: |