我正在尝试制作我的第一个应用程序,它运行得非常好。我知道很多编程语言,但是我遇到了一个问题。
我试图限制用户每小时最多执行一项操作。我一直在尝试做一个计时器。我还涉足了一些服务器端代码来帮助我,但是我似乎无法让它工作。我想知道是否有人有任何可以帮助我的答案?
我正在尝试制作我的第一个应用程序,它运行得非常好。我知道很多编程语言,但是我遇到了一个问题。
我试图限制用户每小时最多执行一项操作。我一直在尝试做一个计时器。我还涉足了一些服务器端代码来帮助我,但是我似乎无法让它工作。我想知道是否有人有任何可以帮助我的答案?
您无法在本地通过 iPhone 实现。
要实现它,您将不得不编写服务器端业务。在执行任何操作之前,请从服务器端检查是否已经过了一个小时。每当有对服务器的请求时,服务器都会更新该特定用户的上次操作时间(如果已经过了一小时)。这个时间将由服务器设置,不依赖于客户端的本地时间。
可能最好的方法如下: 1. 保持用户操作的最后时间是某个文件或数据库(或在 NSUserDefaults 中) 2. 在让用户执行操作时检查存储的时间戳以查看自 1 小时以来是否已经过去最后一次调用。
此外,可能需要根据服务器端检查这一点(以避免删除和重新安装应用程序重置存储的时间戳)。
尝试这样的事情:
@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
即使应用程序关闭,您也可以保存lastActionTime
以保留它。NSUserDefaults
该解决方案假设用户不更改日期或重新安装应用程序。
使用NSTimer禁用一个小时的操作。
scheduledTimerWithTimeInterval
将帮助您实现这一目标。
NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval:yourTimeinterval target:self selector:@selector(trigger) userInfo:nil repeats:YES];