Iphone 如果用户编辑设备日期以绕过将当前日期与固定日期进行比较的逻辑检查,该怎么办?

Iphone 如果用户编辑设备日期以绕过将当前日期与固定日期进行比较的逻辑检查,该怎么办?,iphone,ios,objective-c,date,Iphone,Ios,Objective C,Date,我正在制作一个应用程序,对两个日期进行比较——一个是当前设备日期,另一个是硬编码日期。但是,有一种方法使这种逻辑失效,比如说,通过硬编码日期,用户将设备日期更改为硬编码日期之前的日期。因此,在这种情况下,应用程序失败。 我如何避免这种情况 NSDate * currentDate = [NSDate date]; NSDate * hardcodedDate = [[NSDate alloc] initWithString:@"2013-07-21 11:15:30 +0700"]; NSCom

我正在制作一个应用程序,对两个日期进行比较——一个是当前设备日期,另一个是硬编码日期。但是,有一种方法使这种逻辑失效,比如说,通过硬编码日期,用户将设备日期更改为硬编码日期之前的日期。因此,在这种情况下,应用程序失败。 我如何避免这种情况

NSDate * currentDate = [NSDate date];
NSDate * hardcodedDate = [[NSDate alloc] initWithString:@"2013-07-21 11:15:30 +0700"];
NSComparisonResult result = [currentDate compare:hardcodedDate];

if (!result == NSOrderedDescending) 
{
    // do something 
}

您需要从web服务(使用https)获取当前日期,以验证用户设备的日期。

最常见的情况是设备日期重置回其初始默认值。你可以检查一下,然后贴出一条信息——“设定你的日期,笨蛋!”(或者类似的东西)。@HotLicks不会说你的客户愚蠢。表示一些尊重。@neilco-这就是为什么我说“像那样的话”-“你这个白痴!”好多了。@neilco,原来是个打字错误。HTTPS将阻止(或使其难以)用户用其他服务替换与Web服务的连接。使用HTTPS无法阻止MITM攻击。事实上,我使用这种技术来调试HTTPS调用。这很容易。我仍然支持我的编辑,因为传输与答案无关。相关的一点是从外部源检索时间。OP如何做到这一点在这里并不重要。如果你真的想隐藏你正在从外部来源检索日期的事实,那么就在显而易见的情况下进行。对任何保持服务器时间同步的服务(越无害越好)进行HTTP调用,然后从HTTP响应中的
Date
头读取时间。