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