Resultado diferente para [NSDate date] em vários dispositivos

Para começar, devo dizer que defino autoset nas configurações de data e hora e o fuso horário é o mesmo para cada dispositivo. Então eu uso[NSDate date] para obter o carimbo de hora em milissegundos, em seguida, codifique paraNSData e enviar para outro dispositivo. Nos dados do receptor estão sendo decodificados e subtraídos com novos[NSDate date]. Para que eu obtenha o tempo total necessário para enviar e receber mensagens. Isso foi pensado porque quando o remetente é iPhone 4 iOS6 e receptor é o iPhone 5 iOS7, em seguida, receptor tem data e hora mais cedo do que o remetente. Eu não sei porque? Talvez[NSData date] Não é a classe mais confiável para esse tipo de operações? eu usoGCDAsyncUdpSocket para enviar / receber UDP.

Remetente do código

NSData *data2 = [self createRandomNSData:8192];
NSMutableData *dataToSend =[NSMutableData data];
[dataToSend appendBytes:&tag length:sizeof(int)];
long long currentTimeStamp = (long long)([[NSDate date] timeIntervalSince1970]*1000.0);
[dataToSend appendBytes:&currentTimeStamp length:sizeof(long long)];
[dataToSend appendData:data2];
NSLog(@"%i || %lld || %lu",tag, currentTimeStamp,(unsigned long)[dataToSend length]);
[_udpSocket sendData:dataToSend toHost:@"230.0.0.1" port:_port withTimeout:-1 tag:tag];
tag++;

Receptor de código

char* dataBytes = [data bytes];
int inTag;
long long inCurrentTimeStamp;
[data getBytes:&inTag length:sizeof(int)];
[data getBytes:&inCurrentTimeStamp range:NSMakeRange(sizeof(int), sizeof(long long))];
long long currentTimeStamp = (long long)([[NSDate date] timeIntervalSince1970]*1000.0);
long long timeStampDiff = currentTimeStamp - inCurrentTimeStamp;
self.delay = timeStampDiff;
NSLog(@"%i || %lld || %lu",inTag, timeStampDiff,(unsigned long)[data length]);

questionAnswers(4)

yourAnswerToTheQuestion