iOS开发 - 检查Internet时间(iOS Development - Check Inter

2019-10-20 08:29发布

我正在开发具有笔芯的生活,每5分钟一个应用程序。 什么是检查自上次充值,使用户无法通过改变时间在其设备上欺骗系统的最佳方法是什么?

举一个例子,看看糖果粉碎。 更改系统时间在那里给你额外的生命,而这正是我需要的预防。

Answer 1:

如何运行的[NSTimer scheduledTimerWithTimeInterval:300.0 target:self selector:@selector(giveLife:) userInfo:nil repeats:YES];

应该执行giveLife每5分钟有你可以给额外的生活。 据我所知,的NSTimer不会被改变时钟时间,一旦已经开始受到影响。



Answer 2:

我会建议你做同样的事情,因为它是笨拙的忍者。

  • 每当应用程序变得活跃[applicationDidBecomeActive:] -你试图让互联网的时间。
  • 如果设备的时间时间戳比保存的时间戳小 - 不允许继续。 (请连接到互联网)。
  • 实现一个功能来保存最后的再生周期的时间戳。 于是 - 即使用户成功越来越快活笔芯,一旦他恢复到原来的时间,并继续比赛 - 这将表明,未来直播笔芯将在未来的时间用户的方式是使用最后应用,而不是5分钟。 (为了惩罚作弊者)(但也许设置最高限额,如果最后的再生时间是从当前时间大于5分钟,然后将其设置为1小时?仍然是一个惩罚,但没有这么大失去的球员。

(什么我可以区分基于)

每当应用程序被激活 - 你试图让互联网的时间。 在这一点上 - 你并不需要检查的时间了,而应用程序被打开,直到下一次应用程序变得活跃起来。

在笨拙的忍者,他们允许使用的应用程序,即使网络不可用。 所以 - 如果我激活飞行模式(例如),调整时间要前进几个小时,和开放式应用 - 它认为互联网是不可用,因此无法比较的时间。 而且 - 我有东西(沙袋,球等)等进行修复 - 现已修复。 好极了。

但如果我再次做同样的事情很多很多次,最后我想设置回原来的日期和时间 - 和开放的应用程序,它就会知道是不对的事情。 它可能存储一些上次打开的时间戳,如果该时间比实际设备时大 - 那么用户可能正在做坏事。 和-出现警报- 应用程序必须连接到服务器才能继续

向前移动时的另一个垮台(用户,但是伟大的开发者)是 - 有一些事情,一段时间后,将自动重新生成,但需要以启动再生再次被“挑选”。 在笨拙的忍者,鸡在一段时间后产生一个鸡蛋。 如果卵子没有回升,但仍持有时间戳,应该生成时/。 所以 - 想象一下,用户成功转发时多次(直到它已经提前原始时间1天) - 现在他要设定时间回到原来的时间,使时钟实际上显示正确的时间。 用户后这是否 - 应用程序打开时,时间同步,但发电鸡蛋现在将显示,它将在1天之后准备 - 最后一次保存的时间戳。 但是,这也可用于所有的项目,这需要时间可用。 为什么笨拙忍者还没有用过这个东西来的所有项目? 也许他们害怕的是,如果用户看到,没有什么事是可以很长一段时间 - 用户将停止播放。 因此 - 最好有一个骗子的用户,超过任何用户都没有。



Answer 3:

NSURL *url = [NSURL URLWithString:@"http://www.timeapi.org/utc/now"];
NSString *str = [[NSString alloc] initWithContentsOfURL:url usedEncoding:Nil error:Nil];

str = [str stringByReplacingOccurrencesOfString:@"T" withString:@" "];
str = [str stringByReplacingOccurrencesOfString:@"+01:00" withString:@""];

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSDate *date = [dateFormat dateFromString:str];


文章来源: iOS Development - Check Internet Time