iOS计时器外部应用

时间:2012-11-09 12:43:49

标签: objective-c ios

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

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

4 个答案:

答案 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];