有人會通過以下方法知道我爲什麼會遇到奇怪的正常運行時間嗎?iOS/iPhone上的凍結正常運行時間
NSProcessInfo *processInfo = [NSProcessInfo processInfo];
NSTimeInterval systemUptime = [processInfo systemUptime];
對於第一分鐘,似乎一切都很好,但是當我回來的應用數小時或數天laters的正常運行時間仍然是相同的:30分鐘,或1h34 ...這似乎在隨機時刻凍結。主要是在iPhone 4(很少在模擬器或iPad)
這可能與我展示它的方式:
+ (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;
}
而且在後面的代碼:
NSNumber *uptimeDays, *uptimeHours, *uptimeMins;
[CJGDevice uptime:&uptimeDays hours:&uptimeHours mins:&uptimeMins];
NSString *uptimeString = [NSString stringWithFormat:@"%@d %@h %@min",
[uptimeDays stringValue],
[uptimeHours stringValue],
[uptimeMins stringValue]];
編輯:3後天在iPad和iPhone上記錄結果我可以看到,這個正常運行時間是錯誤的,時間運行得太慢,我們越等待越是顯而易見,它晚了
** 32分鐘前**它顯示** 2d 12h 21min **在iPhone4上,現在顯示** 2d 12h 35min ** – chriscatfr 2011-05-19 00:37:23