Я не могу понять, что означает это утверждение.[newLocation.timestamp timeIntervalSince1970] <[NSDate timeIntervalSinceReferenceDate] - 60 - PullRequest
0 голосов
/ 22 февраля 2011

Я не могу понять, что означает это утверждение.

-(void) locationManager:(CLLocationManager *) manager 
    didUpdateToLocation:(CLLocation *)newLocation
           fromLocation:(CLLocation *)oldLocation
{
    if ([newLocation.timestamp timeIntervalSince1970] < [NSDate timeIntervalSinceReferenceDate] - 60)
    return;
}

timeIntervalSinceReferenceDate возвращает интервал между получателем и первым моментом 1 января 2001 года по Гринвичу.

Как мы сравниваем1970 и 2001 годы?

Ответы [ 3 ]

2 голосов
/ 22 февраля 2011

Относитесь к этому так, как это, скорее всего, есть. Опечатка.

В книгах тоже есть опечатки, и у всех тех книг, которые написаны в спешке, чтобы выпустить их вовремя (т. Е. Все, что связано с iOS), их много.

Вот почему вы никогда не должны копировать и вставлять код, не понимая его.

замените его на

if ([newLocation.timestamp timeIntervalSince1970] < [NSDate timeIntervalSince1970] - 60)

или

if ([newLocation.timestamp timeIntervalSinceReferenceDate] < [NSDate timeIntervalSinceReferenceDate] - 60)

ваш выбор.

1 голос
/ 22 февраля 2011

Не имея всего контекста, трудно сказать.Но результат верен, если временная метка местоположения ближе к началу 1970 года, чем сейчас к началу 2001 года (-60).

0 голосов
/ 22 февраля 2011

Я не разработчик iPhone, но вы можете попробовать сравнить время с миллисекундами.(если в Java есть объект Calendar, который будет выполнять большую часть сравнения дат), хотя и не уверен в Objective c, хотя.

...