Iphone UIEvent具有时间戳。我怎样才能自己生成一个等价值?
根据cocoa文档,Iphone UIEvent具有时间戳。我怎样才能自己生成一个等价值?,iphone,objective-c,cocoa,Iphone,Objective C,Cocoa,根据cocoa文档,UIEvent上的timestamp是“系统启动后的秒数”。它是一个NSTimeInterval 我希望尽可能高效地生成一个等价的数字。当然,我想在UIEvent不发光的地方这样做。:-) 也许你可以将NSDate方法和mach基于框架的函数结合起来得到相同的结果。也许你可以将NSDate方法和mach基于框架的函数结合起来得到相同的结果。好的,我做了一点挖掘,下面是我得出的结论: #import <mach/mach.h> #import <mach/ma
UIEvent
上的timestamp
是“系统启动后的秒数”。它是一个NSTimeInterval
我希望尽可能高效地生成一个等价的数字。当然,我想在
UIEvent
不发光的地方这样做。:-) 也许你可以将NSDate
方法和mach
基于框架的函数结合起来得到相同的结果。也许你可以将NSDate
方法和mach
基于框架的函数结合起来得到相同的结果。好的,我做了一点挖掘,下面是我得出的结论:
#import <mach/mach.h>
#import <mach/mach_time.h>
+ (NSTimeInterval)timestamp
{
// get the timebase info -- different on phone and OSX
mach_timebase_info_data_t info;
mach_timebase_info(&info);
// get the time
uint64_t absTime = mach_absolute_time();
// apply the timebase info
absTime *= info.numer;
absTime /= info.denom;
// convert nanoseconds into seconds and return
return (NSTimeInterval) ((double) absTime / 1000000000.0);
}
#导入
#进口
+(NSTimeInterval)时间戳
{
//获取时基信息--在电话和OSX上不同
马赫时基信息数据信息;
马赫时基信息(和信息);
//抓紧时间
uint64_t absTime=马赫绝对时间();
//应用时基信息
absTime*=信息编号;
absTime/=info.denom;
//将纳秒转换为秒并返回
返回(NSTimeInterval)((双精度)absTime/100000000.0);
}
这似乎相当于
UIEvent
中的timestamp
,考虑到mach\u absolute\u time()
所做的事情非常有意义。好的,我做了一些挖掘,下面是我得出的结论:
#import <mach/mach.h>
#import <mach/mach_time.h>
+ (NSTimeInterval)timestamp
{
// get the timebase info -- different on phone and OSX
mach_timebase_info_data_t info;
mach_timebase_info(&info);
// get the time
uint64_t absTime = mach_absolute_time();
// apply the timebase info
absTime *= info.numer;
absTime /= info.denom;
// convert nanoseconds into seconds and return
return (NSTimeInterval) ((double) absTime / 1000000000.0);
}
#导入
#进口
+(NSTimeInterval)时间戳
{
//获取时基信息--在电话和OSX上不同
马赫时基信息数据信息;
马赫时基信息(和信息);
//抓紧时间
uint64_t absTime=马赫绝对时间();
//应用时基信息
absTime*=信息编号;
absTime/=info.denom;
//将纳秒转换为秒并返回
返回(NSTimeInterval)((双精度)absTime/100000000.0);
}
这似乎相当于
UIEvent
中的timestamp
,考虑到mach\u absolute\u time()
的作用,这是非常有意义的(为了明确起见,对于我的应用程序,我计划保留UIEvent
对象中的timestamp
值以及我自己生成的timestamp
值,并且我希望这些值的顺序有意义。因此我希望生成的timestamp
值与UIEvent
中的值具有意义上的可比性)您在中的解决方案工作正常,但代码调试起来非常困难。时间戳函数似乎不会停止时间增量,我想这是意料之中的。您是否遇到过同样的问题?如果我有更多的信誉点,我会将此作为注释写下:)(为了明确起见,对于我的应用程序,我计划保留UIEvent
对象中的timestamp
值以及我自己生成的timestamp
值,并且我希望这些值的顺序有意义。因此我希望生成的timestamp
值与UIEvent
中的值具有意义上的可比性)您在中的解决方案工作正常,但代码调试起来非常困难。时间戳函数似乎不会停止时间增量,我想这是意料之中的。您是否遇到过同样的问题?如果我有更多的信誉点,我会将此作为注释写下:)我查看了getpidtimeinnanoses
并意识到mach_absolute_time()
是一个理想的地方。所以我在上面的答案中写下了这段代码。谢谢。我查看了GetPIDTimeInNanoseconds
并意识到mach\u absolute\u time()
是一个理想的地方。所以我在上面的答案中写下了这段代码。谢谢。iPhone上是否存在absolutetonanoses
?如果是这样,那么使用它比使用时基信息更容易。如果不是,我建议将分子除以分母(将其中一个除以NSTimeInterval
),然后乘以该分数。绝对的纳秒不是碳API吗?我没有考虑过使用它。。。不确定它在手机上的可用性。iPhone上是否存在absolutetonanoses
?如果是这样,那么使用它比使用时基信息更容易。如果不是,我建议将分子除以分母(将其中一个除以NSTimeInterval
),然后乘以该分数。绝对的纳秒不是碳API吗?我没有考虑过使用它。。。不确定它在电话上是否可用。