2012-07-20 73 views
-1

我想将nstimeInterval值赋给nsdate。cocoa:将nstimeInterval值赋给nsdate?

NSDate *startTime=[NSDate date] ; 
    NSDate *endTime=[NSDate date] ; 
    NSTimeInterval difference=[endTime 
    timeIntervalSinceDate:startTime]; 

    startTime=difference; This gives me an error. 

如何将nsTimeInterval类型的差异结果赋值给nsdate?

在此先感谢

回答

0

你要明白,NSTimeInterval是两个日期之间的差异。你想要做的就像告诉程序:

将日期设置为2天。

当你想要做的是告诉程序:

设置日期上周一加2天。

因此,你需要使用这些家庭的NSDate方法之一:

+ dateWithTimeIntervalSinceNow: 
+ dateWithTimeInterval:sinceDate: 
+ dateWithTimeIntervalSinceReferenceDate: 
+ dateWithTimeIntervalSince1970: 
– initWithTimeIntervalSinceNow: 
– initWithTimeInterval:sinceDate: 
– initWithTimeIntervalSinceReferenceDate: 
– initWithTimeIntervalSince1970: 

当你创建NSDate具有一定的参考日期加/减NSTimeInterval;请注意,NSDate对象是不可更改因此,没有方法使用NSTimeInterval值更改对象所表示的日期。

查看NSDate Class Reference了解更多详情。

要纠正你的代码,这是你会怎么做:

NSDate *startTime=[NSDate date] ; 
NSDate *endTime=[NSDate date] ; 
NSTimeInterval difference=[endTime timeIntervalSinceDate:startTime]; 
NSDate *newTime = [NSDate dateWithTimeInterval:difference sinceDate:startDate];