0

我想得到两次之间的差异。

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self setCurrentQuestion];
}


-(void)setCurrentQuestion{

    dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
    [dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
    [dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
    startTime = [dateFormatter stringFromDate:[NSDate date]];
    date1 = [dateFormatter dateFromString:startTime];

    [self answerTapped];  
}

-(void)answerTapped{
            endtime = [dateFormatter stringFromDate:[NSDate date]];
            date2 = [dateFormatter dateFromString:endtime];
            [dateFormatter release];
            dateFormatter = nil;

            NSTimeInterval * timeDifference =[date2 timeIntervalSinceDate:date1];


}

我正在使用此代码来获取开始时间和结束时间之间的差异,但我得到的错误是“初始化'NSTimeInterval *'(又名'double ')并带有不兼容类型'NSTimeInterval'(又名'double ')的表达式” 在“NSTimeInterval * timeDifference =[date2 timeIntervalSinceDate:date1];” 行。这个错误是什么意思?如何解决这个问题?或者请告诉我如何获得时差?请帮忙。

4

1 回答 1

4

它的星号。您将 timeDifference 声明为指向 NSTimeInterval 的指针。正如您正确指出的那样,这只是双倍。只需更改为:

NSTimeInterval timeDifference =[date2 timeIntervalSinceDate:date1];

另外,我认为您的日期和字符串发布得太早了。最简单的做法是为您的日期声明属性。对于预 ARC:

@property (retain, nonatomic) NSDate * date1;
@property (retain, nonatomic) NSDate * date2; 

或对于 ARC:

@property (strong, nonatomic) NSDate * date1;
@property (strong, nonatomic) NSDate * date2; 

然后像这样使用点运算符进行分配:

self.date1 = [NSDate date];

你根本不需要这些字符串。

于 2012-03-17T05:12:36.203 回答