开发者

NSTime create a timeInterval

开发者 https://www.devze.com 2023-02-10 10:04 出处:网络
I have the following code in my application in the method updateLabel2: timeLeft = [[NSDate date] timeIntervalSinceDate:[[NSUserDefaults standardUserDefaults] objectForKey:@\"lastDate\"]];

I have the following code in my application in the method updateLabel2:

timeLeft = [[NSDate date] timeIntervalSinceDate:[[NSUserDefaults standardUserDefaults] objectForKey:@"lastDate"]];

[[self timer] setText:[NSString stringWithFormat:@"Time Remaining: %f", timeLeft]]; //Set the label text

Note that timer is a label.

and earlier, the following code is executed:

    [[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"lastDate"];
开发者_运维问答

self.repeatTimer = [NSTimer scheduledTimerWithTimeInterval:1
                                               target:self
                                             selector:@selector(updateLabel2) 
                                             userInfo:nil
                                              repeats:YES];

My problem is that timeLeft is being set to random integers which are definetly not what the timeIntervals should be, and are not within one second of each other either.


Your format-string is wrong:
Because NSTimeInterval is a floating point type, you need to either

  • use the appropriate placeholder %f instead of %d or
  • cast timeLeft to an int while calling -[NSString stringWithFormat:].

Which — I think — is, what Justin referred to.

Aside

Considering what you're doing there:
Shouldn't that be "Time elapsed"?

0

精彩评论

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

关注公众号