Does anyone know why I am having a weird uptime with the following method?
NSProcessInfo *processInfo = [NSProcessInfo processInfo]; NSTimeInterval systemUptime = [processInfo systemUptime];
For the first minutes, everything seems fine, but when I return to the hours of work of the hours or days of waiting, the uptime remains the same: 30min or 1 hour 34 ... it seems to freeze at a random moment. Mostly on iPhone 4 (rarely on Simulator or iPad)
It may be related to my way of displaying it:
+ (NSTimeInterval)uptime:(NSNumber **)days hours:(NSNumber **)hours mins:(NSNumber **)mins { NSProcessInfo *processInfo = [NSProcessInfo processInfo]; //START UPTIME/////// NSTimeInterval systemUptime = [processInfo systemUptime]; // Get the system calendar NSCalendar *sysCalendar = [NSCalendar currentCalendar]; // Create the NSDates NSDate *date = [[NSDate alloc] initWithTimeIntervalSinceNow:(0-systemUptime)]; unsigned int unitFlags = NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit; NSDateComponents *c = [sysCalendar components:unitFlags fromDate:date toDate:[NSDate date] options:0]; //NSString *uptimeString = [NSString stringWithFormat:@"%dd %dh %dmin", [c day],[c hour],[c minute]]; *days = [NSNumber numberWithInt:[c day]]; *hours = [NSNumber numberWithInt:[c hour]]; *mins = [NSNumber numberWithInt:[c minute]]; [date release]; //END UPTIME//////// return systemUptime; }
And later in the code:
NSNumber *uptimeDays, *uptimeHours, *uptimeMins; [CJGDevice uptime:&uptimeDays hours:&uptimeHours mins:&uptimeMins]; NSString *uptimeString = [NSString stringWithFormat:@"%@d %@h %@min", [uptimeDays stringValue], [uptimeHours stringValue], [uptimeMins stringValue]];
EDIT: after 3 days of recording the results on the iPad and iPhone, I see that this is uptime, the time is too slow, the more we expect, the more it becomes obvious that it is late
source share