iOS计时器外部应用

我正在尝试制作我的第一个应用程序,它的进展非常顺利。 我知道很多编程语言,但是我遇到了一个问题。

我试图限制用户每小时最多执行一次操作。 我一直在努力做一个计时器。 我还涉足了一些服务器端代码来帮助我,但是我似乎无法使它工作。 我想知道是否有人有任何可以帮助我的答案?

你无法通过本地iPhone实现它。

  • 可以改变设备上的时钟时间,并且存储时间戳的解决方案将不起作用。
  • 计时器不在后面运行。 所以这个解决方案不起作用。

要实现它,您必须编写服务器端业务。 在执行任何操作之前,请检查服务器端是否已经过了一个小时。 每当有服务器请求时,服务器将更新该特定用户的上次操作时间(如果已经过了小时)。 此时间将由服务器设置,而不依赖于客户端的本地时间。

可能最好的方法如下:1。保持用户操作的最后一次是某个文件或数据库(或NSUserDefaults)2。在让用户执行操作时检查存储的时间戳以查看是否已经过了1小时最后一次调用。

此外,可能需要针对服务器端进行检查(以避免删除并重新安装应用程序重置存储的时间戳)。

使用NSTimer一小时禁用该操作。

scheduledTimerWithTimeInterval将帮助您实现此目的。

 NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval:yourTimeinterval target:self selector:@selector(trigger) userInfo:nil repeats:YES]; 

尝试这样的事情:

 @interface YourClass @property (assign, nonatomic) double lastActionTime; @end @implementation YourClass - (BOOL)isActionAllowed { double currentTime = [[NSDate date] timeIntervalSince1970]; if (currentTime - 3600 > lastActionTime) { lastActionTime = currentTime; return YES; } return NO; } @end 

您可以在NSUserDefaults保存lastActionTime以保持应用程序关闭。

该解决方案假设用户不更改日期或重新安装应用程序。