Iphone 我能知道ipad是否重启了吗?

Iphone 我能知道ipad是否重启了吗?,iphone,ios,objective-c,ipad,clock,Iphone,Ios,Objective C,Ipad,Clock,我正在开发一个必须在线和离线工作的应用程序。此应用程序应与我们的服务器同步信息。为此,我们需要设备利用服务器时钟。 我发现了很多信息,我得到了以下想法: 当用户在线登录时,我将强制他获取服务器时钟时间。在这一刻,他必须有互联网连接,所以这是可以的 当我获取时钟服务器时间时,我会获取系统正常运行时间信息,该信息表示设备开启的时间间隔,并将其存储。我可以这样获得系统正常运行时间: [NSProcessInfo processInfo].systemUptime 当用户创建新的本地文件时,我将根据

我正在开发一个必须在线和离线工作的应用程序。此应用程序应与我们的服务器同步信息。为此,我们需要设备利用服务器时钟。 我发现了很多信息,我得到了以下想法:

  • 当用户在线登录时,我将强制他获取服务器时钟时间。在这一刻,他必须有互联网连接,所以这是可以的
  • 当我获取时钟服务器时间时,我会获取系统正常运行时间信息,该信息表示设备开启的时间间隔,并将其存储。我可以这样获得系统正常运行时间:

    [NSProcessInfo processInfo].systemUptime
    
  • 当用户创建新的本地文件时,我将根据systemUptime函数知道当前时间间隔,因此我知道当前时间,而不依赖于iOS系统时钟


  • 问题是:每次设备重新启动或关闭时,系统正常运行时间都会重置。在这里确定之前,我可以解决强迫用户再次登录并再次获取服务器时钟的问题。我的问题是知道设备何时重新启动。你能帮助我吗?谢谢你们

    当您第一次获得系统正常运行时间时,从当前(iOS)日期和时间中减去它。这是系统最后一次启动的时间

    然后在必要时重新计算该值。如果“上次启动系统的时间”已更改,则您知道该重新登录了


    然而,正如另一位评论者所建议的,我怀疑有更好的方法从头开始解决这个问题。

    我的建议是根本不要参考设备时间。从服务器获取文件,并让服务器也回答服务器检索文件的时间。您可以将其存储在文件中、文件名中或单独存储在设备上

    在将来的某个时候,询问服务器是否有比您先前记录的服务器时间更新的文件

    从这个意义上讲,时间根本不是一个时间,它是一个版本号,您也可以通过服务器来明确它,只使用服务器中的一个整数来指示版本的进度顺序


    如果你的应用程序以这种方式变得强大很重要,那么你唯一的选择就是保持独立于设备时间。否则,它有太多的中断方式(包括由于时间检查延迟导致的小时间错误、设备出厂重置或用户的恶意操作)。如果可以的话,最好保持与设备时间无关。

    你能澄清你的目标吗?你真的对系统正常运行时间感兴趣,还是只是想确保你的应用程序使用与服务器时钟同步的时间?我的目标是使创建的文件具有正确的时间,因为在我的情况下,用户经常将iOS时钟放在过去,尝试跳出我们的internet块。我需要文件的时间最接近服务器时间,因为如果我需要控制文件同步和下载的时间,我希望我能回答你的问题。我的问题是,我永远不能信任设备时钟。这样我就可以得到和今天一样的问题。谢谢。我最大的问题是:我必须买iPad。首先,我将我的帐户登录到第一台iPad上。所以我创建了一个绘图,例如,同步它,然后脱机。现在我打开这个文件,继续画一些东西。第一台iPad仍处于离线状态。现在我在第二台iPad上用同样的帐号登录。我会下载抽签,第二台iPad也会离线。就像我继续画这个一样。如果我有正确的时间,我知道哪一个将是最新的同步。但我现在意识到这将非常困难,现在我正在考虑改变我们的同步政策。谢谢Dahn您能允许两台iPad同时编辑吗?然后,即使使用完美的时间同步,编辑也会发生冲突。因此,您必须开发合并逻辑(例如,处理一台ipad编辑另一台ipad删除的对象的情况)。另一种方法是让一台ipad“锁定”文件,而另一台ipad进行编辑。然后你仍然可以用一个简单的整数来跟踪版本。谢谢你,dahn,我会在这里与我的团队保持一致,然后我会和你谈谈发生了什么。谢谢你的帮助。