小编Max*_*007的帖子

什么是基于iPhone的mach_absolute_time

我使用此代码来跟踪上次重启:

+ (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没有考虑睡眠时间.或者我错了吗?

我真的希望能够从设备上次重启时获取时间戳.有任何想法吗?

iphone timer

31
推荐指数
2
解决办法
4万
查看次数

为什么在创建模型对象时会获得AssociationTypeMismatch?

我收到以下错误:

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)

ruby-on-rails nested-forms

12
推荐指数
1
解决办法
5085
查看次数

是否可以从iphone GPS获取原子钟时间戳?

我正在寻找一种可靠的方式来获得时间.它不能被篡改,它需要脱机工作.所以没有互联网时间,设置中没有用户时间设置,也没有上次重启后的BSD正常运行时间.我想知道,因为GPS使用原子钟工作,我是否可以访问该信息.

谢谢

iphone gps gps-time

8
推荐指数
2
解决办法
1万
查看次数

如何在iPhone中获取实时,而不是用户在"设置"中设置的时间?

我需要确保我的应用获得正确的时间,而不是用户在设置中设置的时间.

例如,一旦用户启动应用程序,我就想获得一个时间戳.用户将看到每秒更新屏幕上的计时器的经过时间.当用户退出应用程序,并在一段时间后重新启动应用程序时,计时器将获取当前时间并将其与其保留的原始时间戳进行比较.所以基本上就像iPhone上的Clock.App中的秒表一样.

现在clock.app的问题在于,如果用户将设置中的时间提前一小时,这将影响计时器.显然我不希望这样,因为在我的应用程序中,这将是作弊.

我需要得到一个更值得信赖的时间源来进行比较.

我可以从互联网上得到时间.但问题是我需要互联网连接,所以只有在有互联网连接时才能使用.我的应用程序需要优先离线工作.

我可以访问某种内部时钟吗?

有没有办法检查用户是否更改了设置中的日期时间?

还有其他想法吗?

谢谢

iphone time cocoa-touch date iphone-sdk-3.0

7
推荐指数
1
解决办法
4066
查看次数

自上次应用程序启动以来,如何检测iphone是否已重新启动

我想从我的应用程序中检测到自上次我的应用程序启动以来iPhone是否已重新启动.我需要这样做,因为我的应用程序使用自上次系统重启后的计时器计时用户的时间,我想检测重启,以便我可以使时间无效.

有没有我可以从系统控制台日志中提取信息,如重启,崩溃?xcode中的组织者可以访问它,也许我也可以访问它.

如果没有,你能想到其他方法来获取这些信息吗?

iphone cocoa-touch

5
推荐指数
1
解决办法
5626
查看次数