sistema resumida que operativo historia creadores caracteristicas objective-c

objective-c - resumida - sistema operativo unix caracteristicas



Crear NSDate desde la marca de tiempo de Unix (4)

¿Cómo creo un NSDate a partir de una marca de tiempo Unix?

channel.startDate = [NSDate dateWithTimeIntervalSince1970: (NSTimeInterval)[channelJson objectForKey:@"broadcastStartedTime"]];

Me sale este error:

104: error: valor de puntero utilizado donde se esperaba un valor de coma flotante

channels.startDate es un NSDate* . El valor para la clave "broadcastStartedTime" es un Number Javascript convertido en un NSNumber o NSDecimalNumber por la biblioteca del analizador SBJson .


Necesitas desenvolver el NSNumber:

channel.startDate = [NSDate dateWithTimeIntervalSince1970:[[channelJson objectForKey:@"broadcastStartedTime"] doubleValue]];


Pruebe esto en su lugar:

NSNumber *startTime = channelJson[@"broadcastStartedTime"]; channel.startDate = [NSDate dateWithTimeIntervalSince1970:[startTime doubleValue]];

Su valor está atrapado en un tipo de puntero de NSNumber . El método dateWithTimeIntervalSince1970 espera un primitivo NSTimeInterval (que, bajo las coberturas, es un double ).


Use -doubleValue :

// NSTimeInterval is just a typedef for double NSTimeInterval interval = [[channelJson objectForKey:@"broadcastStartedTime"] doubleValue]; channel.startDate = [NSDate dateWithTimeIntervalSince1970:interval];


NSTimeInterval (que es el mapa de tiempo de Unix) para la conversión de NSDate en Swift:

let timeInterval = NSDate().timeIntervalSince1970 // the the unix timestamp NSDate(timeIntervalSince1970: timeInterval)