Да, вам нужно сохранить вашу последнюю синхронизированную дату в базе данных / пользовательских значениях по умолчанию, а затем выбрать из базы данных / пользовательских значений по умолчанию
и необходимо передать и дату, синхронизированную дату и текущую дату следующей функции
-(int)howManyDaysHavePast:(NSDate*)lastDate today:(NSDate*)today {
NSDate *startDate = lastDate;
NSDate *endDate = today;
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorian components:NSDayCalendarUnit fromDate:startDate toDate:endDate options:0];
int days = [components day];
return days;
}
и тогда вам нужно проверить, сколько дней прошло
if([self howManyDaysHavePast:lastSyncedDate today:[NSDate date]]>=7)
{
[self callFunction];
}