Code:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
// create an array of rules
NSArray *rules = [NSArray arrayWithArray:[selectedContact objectForKey:kRULES]];
NSMutableArray *phoneTypes = [[NSMutableArray alloc] init];
NSInteger i, ruleCount = [rules count];
for (i=0; i<ruleCount; i++) {
[phoneTypes addObject:[[rules objectAtIndex:i] objectForKey:kPHONETYPE]];
}
// count the total # of unique phoneTypes
NSInteger mobile,home,work,homeFax,workFax,pager,assistant,car,companyMain,radio,iPhone,other = 0;
NSString *tempType;
for (i=0; i<[phoneTypes count]; i++) {
tempType = [phoneTypes objectAtIndex:i];
if (tempType == @"mobile")
mobile++;
else if (tempType == @"home")
home++;
else if (tempType == @"work")
work++;
else if (tempType == @"home fax")
homeFax++;
else if (tempType == @"work fax")
workFax++;
else if (tempType == @"pager")
pager++;
else if (tempType == @"assistant")
assistant++;
else if (tempType == @"car")
car++;
else if (tempType == @"company main")
companyMain++;
else if (tempType == @"radio")
radio++;
else if (tempType == @"iPhone")
iPhone++;
else if (tempType == @"other")
other++;
}
// delete duplicate phoneType objects so only one of each remains
// number of sections = array.count
return 2; // this is temporary; remove when above code works
}
I am trying to count the individual number of occurrences of each string shown in the if-else if statements above. My end-goal is to have a grouped table view, where the section headers are the phone types (i.e., "iPhone") and the number of rows in the section is the number of occurrences of "iPhone" in the array. When the above code works, I'll write a new bit that removes the duplicate entries so I'm left with a small array from which to pull the section headers - but, I need the count of items first, so I know how many rows are in each section.
My problem is, the code above (specifically, the second part, where I'm trying to count the occurrences) doesn't work. For some reason, the integer variables are not getting set to zero. When I set a breakpoint at the last statement ("return 2;") and examine the variable values, they're all weird, impossible values - like 3567893 or something.
I've tried changing the type from NSInteger to int, I've tried individually setting each variable to zero (instead of the way it's shown above), and I've inspected the variable values before the for loop starts. Clearly I am doing something wrong, but I have no idea what it is.
Any help would be greatly appreciated. Thanks in advance.