Iphone 仅在手动更改设备时间时检测设备时间更改
问题:我知道检测手动时间更改的方法Iphone 仅在手动更改设备时间时检测设备时间更改,iphone,ios,objective-c,datetime,Iphone,Ios,Objective C,Datetime,问题:我知道检测手动时间更改的方法ApplicationsSignificantTimeChange。但方法文档中说: 重大时间变化的示例包括午夜的到来、承运人对时间的更新以及夏时制的变更。委托可以实现此方法来调整显示时间或对时间变化敏感的应用程序的任何对象 因此,它不仅检测到手动时间变化,还检测到午夜的到来。在我的应用程序中,这将产生一个问题,因为用户将看到一个alertbox: 你必须改变时间。请恢复到实际时间 即使他在午夜后恢复应用程序(或者可能是他最小化应用程序并进入睡眠状态。第二天他醒
ApplicationsSignificantTimeChange
。但方法文档中说:
重大时间变化的示例包括午夜的到来、承运人对时间的更新以及夏时制的变更。委托可以实现此方法来调整显示时间或对时间变化敏感的应用程序的任何对象
因此,它不仅检测到手动时间变化,还检测到午夜的到来。在我的应用程序中,这将产生一个问题,因为用户将看到一个alertbox:
你必须改变时间。请恢复到实际时间
即使他在午夜后恢复应用程序(或者可能是他最小化应用程序并进入睡眠状态。第二天他醒来,恢复应用程序并意外地收到时间更改通知)
问题:
如何仅在手动更改时间而非午夜到达时显示警报?只需使用
NSSystemClockDidChangeNotification
最好在服务器运行时检查这些内容 遵循以下步骤
让我知道这是否清楚。我使用远程服务器时间检查的一种变体已有一年或几年了。它在iOS上运行得很好
阿福,我总是使用UTC时间戳来避免任何区域设置问题。谁/什么人在执行“手动时间更改”,您希望提醒用户?如果您可以使用ApplicationsSignificantTimeChange获得所需的结果,则除非应用程序处于打开或半打开/最小化状态,否则您的警报不会出现,但从阅读该描述中,我看不到它声明它检测到一个用户在改变时间……尽管它可以。我知道一个非常流行的名为CSR Racing的应用程序存在作弊问题,因为用户更改了您获得奖金的时间,这需要一个月的时间。如果我需要保护,我的方法是从我的应用程序启动开始与外部源/Web服务器时间进行检查,并与用户时间进行比较,然后进行比较。例如,用户最小化应用程序,然后从设置更改时间。之后,如果用户打开/恢复应用程序,他将通过applicationSignificantTimeChange方法收到通知。但如果他不改变时间,但午夜来临的话,他也会得到。我想避免这种情况。如何调用该方法,我尝试在
[UIApplicatin sharedApplication]
中调用它,但它没有定义。我该怎么称呼它,还是代表?