我从NSDatePicker(startDate,endDate)收到两个值。之后,我尝试在这两个日期之间检索日历事件。而不是startDate,endDate我给了remotePast,remoteFuture。
程序未显示任何错误。使用此代码时,我得到了EXC_BAD_ACCESS。这段代码出了什么问题?
NSCalendar *sysCalendar = [[NSCalendar currentCalendar] autorelease];
unsigned int unitFlags = NSDayCalendarUnit;
NSDateComponents *difference=[[[NSDateComponents alloc] init] autorelease];
difference = [[sysCalendar components:unitFlags fromDate:startDate
toDate:endDate options:0] autorelease];
double days = [difference day];
NSLog(@"DAYSS %@",days);
答案 0 :(得分:1)
我在这里注意到三个错误:
currentCalendar
,不需要days
应为NSInteger
而不是double
,因为[difference day]
将返回NSInteger
。days
记录%@
不起作用,用于打印对象描述,使用%i
。在我看来,应用程序在NSLog(@"DAYSS %@",days);
崩溃,使用%i
替换它会导致崩溃,但你也应该纠正其他错误。
答案 1 :(得分:0)
嗨,因为文斯已经解释过你所犯的错误,
[NScalender currentcalender]也有内存泄漏 - 你无法自动释放它
http://www.cocoabuilder.com/archive/cocoa/173758-nscalendar-currentcalendar-leak.html
你应该检查一下 - 包含事件工具包的所有功能