어떤 이유로 인해 tableView: titleForHeaderInSection:
메서드로 인해 응용 프로그램이 충돌하는 이유를 알 수 없습니다. 나는 그것이 주석으로 처리 할 때 헤더가 분명히 없기 때문에 테이블이로드되기 때문에이 방법이라는 것을 알고있다.tableView : titleForHeaderInSection : 크래시가 발생했습니다.
- (void)viewDidLoad {
[super viewDidLoad];
NSArray *monthArray = [NSArray arrayWithObjects:@"January", @"February", @"March", @"April", @"May", @"June", @"July", @"August", @"September", @"October", @"November", @"December", nil];
NSCalendar *calendar= [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSCalendarUnit unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit;
NSDate *date = [NSDate date];
NSDateComponents *dateComponents = [calendar components:unitFlags fromDate:date];
NSInteger year = [dateComponents year];
NSInteger month = [dateComponents month];
currentYear = [NSString stringWithFormat:@"%d", year];
nextYear = [NSString stringWithFormat:@"%d", year+1];
[dateComponents setMonth:month];
currentYearMonths = [[NSMutableArray alloc] init];
nextYearsMonths = [[NSMutableArray alloc] init];
for(uint i=month-1; i<=11; i++){
[currentYearMonths addObject:[monthArray objectAtIndex:i]];
}
for(uint i=0; i<month-1; i++){
[nextYearsMonths addObject:[monthArray objectAtIndex:i]];
}
[calendar release];
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
NSString *sectionHeader = nil;
if(section == 0) {
sectionHeader = currentYear;
}
if(section == 1) {
sectionHeader = nextYear;
}
return sectionHeader;
}
아,보다 빠릅니다 :-) +1이 자동으로 실행되는 변수 – Alfonso
rson 일 가능성이 높습니다. 작동하지는 않지만, 아무 이유없이 추가 문자열을 할당하고 있습니다. 내 대답을 보라. – gerry3