Sembra che non sia possibile sottrarre 7 giorni dalla data corrente. Ecco come lo sto facendo:
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setDay:-7];
NSDate *sevenDaysAgo = [gregorian dateByAddingComponents:offsetComponents toDate:[NSDate date] options:0];
SevenDaysAgo ottiene lo stesso valore della data corrente.
Per favore aiuto.
EDIT: Nel mio codice ho dimenticato di sostituire la variabile che ottiene la data corrente con quella giusta. Quindi il codice sopra è funzionale.
[NSDate dateWithTimeIntervalSinceReferenceDate:[NSDate date].timeIntervalSinceReferenceDate - (7*24*60*60)]
- Anche se non gestisce le modifiche all'ora legale.