日付が今日より前であるかどうかをチェックするforループを実行するメソッドを作成しようとしています。日付が今日より前である場合は、NSDateComponentでインクリメントする必要があります。
日付が今日より前かどうかを確認する方法:
- (BOOL) isDatePassedToday:(NSDate *)recurringDate
{
if ([recurringDate compare:[NSDate date]] == NSOrderedDescending)
return NO;
return YES;
}
forループが機能するために必要なロジック:
-(NSDate *)calculateRecurringReminder:(NSDate *)startDate using:(NSDateComponents*)doItAgainComponents
{
NSDate *recurringDate = [[NSDate alloc]init];
recurringDate = [[NSCalendar currentCalendar] dateByAddingComponents:doItAgainComponents toDate:recurringDate options:0];
// The loop to add components
for ([self isDatePassedToday:recurringDate]; [self isDatePassedToday:recurringDate] == YES; doItAgainComponents)
{
recurringDate = [[NSCalendar currentCalendar] dateByAddingComponents:doItAgainComponents toDate:recurringDate options:0];
}
return recurringDate;
}