0

2回の違いを知りたい。

- (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 ')の式で "Inintializing' NSTimeInterval *'(別名' double')としてエラーが発生します"at" NSTimeInterval * timeDifference = [date2 timeIntervalSinceDate:date1];"行。このエラーはどういう意味ですか?これを解決する方法は?または、どのように時差を取得するのか教えてください。助けてください。

4

1 に答える 1

4

そのアスタリスク。NSTimeIntervalへのポインターとしてtimeDifferenceを宣言しています。あなたが正しく指摘しているように、それはちょうど2倍です。次のように変更してください。

NSTimeInterval timeDifference =[date2 timeIntervalSinceDate:date1];

また、あなたの日付と文字列はあまりにも早くリリースされていると思います。最も簡単な方法は、日付のプロパティを宣言することです。pre-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 に答える