Javed George
Javed George

Reputation: 39

UILocalNotification triggered but not scheduled

Hi people I have a problem with my app, where I want to add some basic LocalNotifications, which repeat themselves every week. I want to do this in a method called "scheduleLocalNotificationForItem:", which is called when the doneBarButtonItem is pressed. This all seems to be working so far, because when I log all the scheduled notifications every scheduled notification shows up. But when I use the app, the scheduled notifications get triggered and show up but there are some additional notifications, which I haven't set myself and I can't determinate where they come from, which appear too.

So here's my code:

- (int)scheduleNotifitactionsForItem:(AlarmItem *)item
{
    NSArray *reorderdRepeat = [NSArray arrayWithArray:[self transformArray:item.repeat]];
    int missedDays = 0;
    int scheduledAlarms = 0;
    for (int i = 0; i < item.repeat.count; i++) {
        if ([[reorderdRepeat objectAtIndex:i] boolValue] == true) {//Problem determinating true values at end of array
            NSInteger integerOfDay = i + 1;//reorderRepeat should contain seven items, icrement i bevore adding it to integerOfDay
            NSDate *lastAlarmTime = [self getFireDateForDayOfWeek:integerOfDay withTime:item.time];
            NSArray *allAlramTimesForDay = [self getFireDatesForTime:lastAlarmTime andCycle:item.cycles];
            for (int i = 0; i < allAlramTimesForDay.count; i++) {
                NSDate *alarmTime = [allAlramTimesForDay objectAtIndex:i];
                UIApplication *application = [UIApplication sharedApplication];
                UILocalNotification *notification = [UILocalNotification new];
                NSDictionary *userInfo = @{@"index":[NSString     stringWithFormat:@"%d",item.notification]};
                notification.repeatInterval = NSCalendarUnitWeekday;
                notification.alertBody = item.title;
                notification.userInfo = userInfo;
                notification.fireDate = alarmTime;
                notification.soundName = item.sound;
                [application scheduleLocalNotification:notification];
                scheduledAlarms += 1;
            }
        } else {
            missedDays += 1;
        }
    }
    return scheduledAlarms;
}

Help is appreciated ;)

Upvotes: 1

Views: 116

Answers (1)

Jin
Jin

Reputation: 1671

Your repeatInterval should be NSCalendarUnitWeekOfYear (or old NSWeekCalendarUnit). NSCalendarUnitWeekday (NSWeekdayCalendarUnit) will repeat everyday.

Upvotes: 1

Related Questions