我正在开发一个iphone应用程序,用于计算我使用代码的两个日期之间的天数,如下所示:
double intevalInSeconds = [selectedDate2 timeIntervalSinceDate:newfromdate];
int dayInSeconds = 60 * 60 * 24;
int day = intevalInSeconds / dayInSeconds;
NSLog(@"counted days are:%d",day);
NSDateFormatter *df=[[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd"];
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:
NSGregorianCalendar];
NSDateComponents *days = [[NSDateComponents alloc] init];
NSInteger dayCount = 0;
while ( TRUE ) {
[days setDay: ++dayCount];
NSDate *date = [gregorianCalendar dateByAddingComponents: days toDate: newfromdate
options: 0];
if ( [date compare: selectedDate2] == NSOrderedDescending )
break;
NSString *dateForAdd=[df stringFromDate:date];
[countdays addObject:dateForAdd];
}
NSLog(@"daysdetail:%@",countdays);
appendarray = countdays;
NSLog(@"append array is:%@",appendarray);
}
当我在模拟器上运行此应用程序时,它工作正常,但每当我尝试在设备上运行它时,它会给出错误|: - [__NSDate timeIntervalSinceReferenceDate]:发送到解除分配的实例0x65a30b0的消息
如果我在上面的代码中做错了,请告诉我。
非常感谢。
答案 0 :(得分:0)
timeIntervalSinceDate:
来电timeIntervalSinceReferenceDate
。
所以你的代码似乎是在你向我们展示的代码之前的某个地方释放了一个NSDates。