一些Playground代码的快照显示我尝试以纳秒为单位调整NSDate,然后通过比较第一个NSDate和第二个NSDate来尝试获得相同的纳秒值:
考虑到有关浮点数和十进制不准确性的所有内容,我可以看到使用NSTimeInterval
可能不是这样做的方法。
我认为另一种可能性是使用NSDateComponents
。但整个过程对我来说真的很困惑。看起来您必须创建一个格里高利日历对象,然后以某种方式从NSDate
获取纳秒,然后直接调整纳秒,并将其全部重新置于NSDate
。很复杂!
但由于NSCalendar
有一种内置的方式可以将纳秒存储为Ints
,我想我真的需要澄清它是否可以用于此目的。
答案 0 :(得分:1)
对于非常精确的时间,请使用#import <mach/mach_time.h>
mach_timebase_info_data_t info;
mach_timebase_info(&info);
uint64_t start = mach_absolute_time ();
uint64_t end = mach_absolute_time ();
uint64_t elapsed = end - start;
uint64_t nanos = elapsed * info.numer / info.denom;
NSLog(@"elasped: %llu nano seconds", nanos);
CGFloat seconds = (CGFloat)nanos / NSEC_PER_SEC;
NSLog(@"elasped: %0.9f seconds", seconds);
。有关详细信息,请参阅Apple this answer。
public void goToPage3(){
Intent intent = new Intent(Page2.this , Page3.class);
startActivity(intent);
}
public void goToPage5(){
Intent intent = new Intent(Page2.this , Page5.class);
startActivity(intent);
}// and so on up to page20
Objective-C版本:
public class MenuDetails{
public Intent createIntent(Context from, Class to){
return new Intent(from,to);
//Context from is unknown
}
elasped:45纳秒 elasped:0.000000045秒