本文介绍了如何在iphone中设置选定日期的闹钟?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想为一周中选定的几天设置闹钟。

I want to set alarm for selected days of the week.

可能是工作日(周一,周二,周三,周四或周五),周末(坐,太阳)或每天。

It may be a weekday (mon, tue, wed, thu, or fri), weekend(sat, sun) or daily.

如何使用本地通知执行此操作?

How can i do this using local notifications?

推荐答案

如果你有时间每天发出通知,你应该这样做

If you have the time which you have to fire notification every day, you should do this

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSDateComponents *components = [[NSDateComponents alloc] init];
    for (NSMutableArray * arrDay in self.namaztimes) {
        NSLog(@"Alarm Array: %@", arrDay);
        int count=[arrDay count];
        if(!count){
            continue;
        }

        int day =0;
        int month=0;
        int year=0;
        int hour =0;
        int minutes=0;

        //  NSArray *arrDates=[[NSMutableArray alloc] initWithCapacity:1];
        for ( int i=0;i<3;i++) {
            NSString * dayTime=[arrDay objectAtIndex:i ];
            if (i==0) {
                day = [dayTime intValue];
            }else if(i==1){
                month = [dayTime intValue];
            }else if(i==2){
                year = [dayTime intValue];

            }
        }
        for ( int i=3;i<count;i++) {
            NSString * dayTime=[arrDay objectAtIndex:i ];
            hour = [[dayTime substringToIndex:2] intValue];
            minutes = [[dayTime substringFromIndex:3] intValue];

            [components setDay:day];
            [components setMonth:month];
            [components setYear:year];
            [components setMinute:minutes];
            [components setHour:hour];


            NSDate *myNewDate = [calendar dateFromComponents:components];

            [self scheduleNotificationForDate:myNewDate];

        }
    }

    [components release];
    [calendar release];

然后从这里它将连接到主要的通知触发方法

[self scheduleNotificationForDate:myNewDate];

then from here it will connect to the main notification firing method
[self scheduleNotificationForDate:myNewDate];

-(void) scheduleNotificationForDate: (NSDate*)date {
    /* Here we cancel all previously scheduled notifications */
    [[UIApplication sharedApplication] cancelAllLocalNotifications];
    UILocalNotification *localNotification = [[UILocalNotification alloc] init];
    localNotification.fireDate = date;
    NSLog(@"Notification will be shown on: %@ ",localNotification.fireDate);

    localNotification.timeZone = [NSTimeZone defaultTimeZone];
    localNotification.alertBody = @"Your Notification Text"; //[NSString stringWithFormat:@"%@",date];
    localNotification.alertAction = NSLocalizedString(@"View details", nil);

    /* Here we set notification sound and badge on the app's icon "-1"
     means that number indicator on the badge will be decreased by one
     - so there will be no badge on the icon */

    localNotification.repeatInterval = NSDayCalendarUnit;
    localNotification.soundName = UILocalNotificationDefaultSoundName;
    localNotification.applicationIconBadgeNumber = -1;

    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
}

这篇关于如何在iphone中设置选定日期的闹钟?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-08 00:55