我正在尝试制作我的第一个应用程序,它的进展非常顺利。我知道很多编程语言,但是我遇到了一个问题。
我试图限制用户每小时做一个动作。我一直在尝试制作计时器。我还涉足某些服务器端代码来帮助我,但是我似乎无法使其起作用。我想知道是否有人有任何答案可以帮助我?
您无法通过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
您可以将lastActionTime
保存在NSUserDefaults
中以保持它,甚至关闭应用程序。
假设用户不更改日期或重新安装应用程序的解决方案。