Another approach:
NSDateFormatter* dayFmt = [[NSDateFormatter alloc] init];
[dayFmt setTimeZone:];
[dayFmt setDateFormat:@"g"];
NSInteger firstDay = [[dayFmt stringFromDate:firstDate] integerValue];
NSInteger secondDay = [[dayFmt stringFromDate:secondDate] integerValue];
NSInteger difference = secondDay - firstDay;
Has the advantage over the timeIntervalSince... scheme that timezone can be taken into account, and there's no ambiguity with intervals a few seconds short or long of one day.
And a bit more compact and less confusing than the NSDateComponents approaches.