如何使用NSDate测量起点的时间间隔?

Pra*_*sad 1 iphone objective-c ios

我有一个方法,我在整个项目的许多地方使用,如下所示:

-(void)showSignInView
{
    if(check for time interval)
    [[self superview] addSubview:loginController.view];
} 
Run Code Online (Sandbox Code Playgroud)

我想首次注意调用此方法,然后在此方法的每次后续调用中检查以确保间隔距离原始调用超过15分钟.只有这样它才会执行其余的代码.

我知道你可以使用NSDate来测量时间间隔,使用如下代码:

NSDate *firstTime = [[NSDate date] retain];

NSDate *SecondTime = [NSDate date];

NSLog(@"Time elapsed: %f", [SecondTime timeIntervalSinceDate:firstTime]);
Run Code Online (Sandbox Code Playgroud)

但我不确定如何实施初始时间检查,然后进行后续比较.我怎样才能做到这一点?

Emp*_*ack 7

创建一个名为的属性previousTime.

@property(nonatomic, retain) NSDate *previousTime;
Run Code Online (Sandbox Code Playgroud)

并创建一种方法来查找时差.

- (NSTimeInterval)timeDifferenceSinceLastOpen {

    if (!previousTime) self.previousTime = [NSDate date];
    NSDate *currentTime = [NSDate date];
    NSTimeInterval timeDifference =  [currentTime timeIntervalSinceDate:previousTime];
    self.previousTime = currentTime;
    return timeDifference;
}
Run Code Online (Sandbox Code Playgroud)