我使用此代码来跟踪上次重启:
+ (float) secondsSinceLastReboot{
return ((float)(mach_absolute_time())) * ((float)timebase.numer) / ((float)timebase.denom) / 1000000000.0f;
}
Run Code Online (Sandbox Code Playgroud)
我假设mach_absolute_time()基于上次设备启动时间,就像在mac上一样.它似乎不是基于此.我实际上不知道它的基础是什么.
请看以下行为(今天的日期是2009-09-20):
lastRebootTime = [[NSDate date] addTimeInterval:-[self secondsSinceLastReboot]];
//last Reboot Time will contain : 2009-09-20 07:42:14 +0100
Run Code Online (Sandbox Code Playgroud)
我绝对肯定我当时没有重启我的设备.我的设备一周内没有启动.
此外,当我从电缆上取下设备并运行此应用程序时,似乎当设备进入休眠状态时,lastRebootTime将来会开始转移.似乎mach_absolute_time没有考虑睡眠时间.或者我错了吗?
我真的希望能够从设备上次重启时获取时间戳.有任何想法吗?
我收到以下错误:
ActiveRecord::AssociationTypeMismatch in ContractsController#create
ExchangeRate(#2183081860) expected, got HashWithIndifferentAccess(#2159586480)
Params:
{"commit"=>"Create",
"authenticity_token"=>"g2/Vm2pTcDGk6uRas+aTgpiQiGDY8lsc3UoL8iE+7+E=",
"contract"=>{"side"=>"BUY",
"currency_id"=>"488525179",
"amount"=>"1000",
"user_id"=>"633107804",
"exchange_rate"=>{"rate"=>"1.7"}}}
Run Code Online (Sandbox Code Playgroud)
我的相关模型是:
class Contract < ActiveRecord::Base
belongs_to :currency
belongs_to :user
has_one :exchange_rate
has_many :trades
accepts_nested_attributes_for :exchange_rate
end
class ExchangeRate < ActiveRecord::Base
belongs_to :denccy, :class_name=>"Currency"
belongs_to :numccy, :class_name=>"Currency"
belongs_to :contract
end
Run Code Online (Sandbox Code Playgroud)
我的观点是:
<% form_for @contract do |contractForm| %>
Username: <%= contractForm.collection_select(:user_id, User.all, :id, :username) %> <br>
B/S: <%= contractForm.select(:side,options_for_select([['BUY', 'BUY'], ['SELL', 'SELL']], 'BUY')) %> <br>
Currency: <%= contractForm.collection_select(:currency_id, Currency.all, :id, :ccy) %> <br> <br>
Amount: <%= …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种可靠的方式来获得时间.它不能被篡改,它需要脱机工作.所以没有互联网时间,设置中没有用户时间设置,也没有上次重启后的BSD正常运行时间.我想知道,因为GPS使用原子钟工作,我是否可以访问该信息.
谢谢
我需要确保我的应用获得正确的时间,而不是用户在设置中设置的时间.
例如,一旦用户启动应用程序,我就想获得一个时间戳.用户将看到每秒更新屏幕上的计时器的经过时间.当用户退出应用程序,并在一段时间后重新启动应用程序时,计时器将获取当前时间并将其与其保留的原始时间戳进行比较.所以基本上就像iPhone上的Clock.App中的秒表一样.
现在clock.app的问题在于,如果用户将设置中的时间提前一小时,这将影响计时器.显然我不希望这样,因为在我的应用程序中,这将是作弊.
我需要得到一个更值得信赖的时间源来进行比较.
我可以从互联网上得到时间.但问题是我需要互联网连接,所以只有在有互联网连接时才能使用.我的应用程序需要优先离线工作.
我可以访问某种内部时钟吗?
有没有办法检查用户是否更改了设置中的日期时间?
还有其他想法吗?
谢谢
我想从我的应用程序中检测到自上次我的应用程序启动以来iPhone是否已重新启动.我需要这样做,因为我的应用程序使用自上次系统重启后的计时器计时用户的时间,我想检测重启,以便我可以使时间无效.
有没有我可以从系统控制台日志中提取信息,如重启,崩溃?xcode中的组织者可以访问它,也许我也可以访问它.
如果没有,你能想到其他方法来获取这些信息吗?