Iphone 如何判断自NSDate起的小时数

Iphone 如何判断自NSDate起的小时数,iphone,objective-c,ios4,Iphone,Objective C,Ios4,我使用[NSDate date]启动了NSDate;我想检查NSDate变量是否已经存在5个小时了。我该怎么做呢?我的代码中包含的是 requestTime = [[NSDate alloc] init]; requestTime = [NSDate date]; 在后面的一个方法中,我想检查自请求时间起是否已经12个小时了。请帮忙!提前谢谢 int seconds = -(int)[requestTime timeIntervalSinceNow]; int hours = seconds/

我使用[NSDate date]启动了NSDate;我想检查NSDate变量是否已经存在5个小时了。我该怎么做呢?我的代码中包含的是

requestTime = [[NSDate alloc] init];
requestTime = [NSDate date];
在后面的一个方法中,我想检查自请求时间起是否已经12个小时了。请帮忙!提前谢谢

int seconds = -(int)[requestTime timeIntervalSinceNow];
int hours = seconds/3600;
基本上在这里,我要问的是,从我们第一次得到请求时间到现在已经过去了多少秒。然后用一个小数学魔术,也就是除以一小时内的秒数,我们可以得到已经过去的小时数

一句警告的话。确保在设置requesttime时使用“retain”关键字。xcode喜欢忘记NSDate对象在没有它的情况下设置为什么

    requestTime = [[NSDate date] retain];

尝试使用这种方法,或者类似的方法

- (int)hoursSinceDate :(NSDate *)date
{
    #define NUBMER_OF_SECONDS_IN_ONE_HOUR 3600

    NSDate *currentTime = [NSDate date];
    double secondsSinceDate = [currentTime timeIntervalSinceDate:date];
    return (int)secondsSinceDate / NUBMER_OF_SECONDS_IN_ONE_HOUR;
}
然后可以对整数小时响应进行简单检查

int hours = [dateUtilityClass hoursSinceDate:dateInQuestion];
if(hours < 5){
    # It has not yet been 5 hours.
}
int hours=[dateUtilityClass hoursSinceDate:dateInQuestion];
如果(小时数<5){
#还不到5个小时。
}

您应该改用NSDATE组件
int hours = [dateUtilityClass hoursSinceDate:dateInQuestion];
if(hours < 5){
    # It has not yet been 5 hours.
}