Недопустимые значения переменных Objective C в виде двойного - PullRequest
2 голосов
/ 13 марта 2011

У меня есть следующий кусок кода ...

double time = [[NSDate date] timeIntervalSince1970];
double startTime = time;
double endTime = time;

Когда я запускаю код, startTime и endTime даже не находятся близко друг к другу. Например, startTime - это 4378480, а endTime - 1883506224.

Почему существует такая разница между двумя значениями времени?

Ответы [ 3 ]

3 голосов
/ 13 марта 2011

Во-первых, используйте NSTimeInterval, а не double, для всех типов переменных.

Далее - показывает код, который вы используете для печати значений.Я подозреваю, что вы используете неправильный формат для типа переменной (поскольку временные интервалы всегда имеют десятичный компонент) и в результате эффективно выводите мусор.

1 голос
/ 13 марта 2011

Можете ли вы связать код, который вы используете для вывода значений, помните, что вам нужно использовать% f, а не% d в форматере. Выше должно быть эквивалентно, так как оба указывают на одно и то же значение

0 голосов
/ 13 марта 2011

Неважно, у меня была проблема с использованием неправильного символа NSLog.

[NSString stringWithFormat:@"%d", startTime]

Когда это должно было быть.

[NSString stringWithFormat:@"%f", startTime]
...