当前位置 : 主页 > 手机开发 > ios >

iOS在特定日期设置本地通知

来源:互联网 收集:自由互联 发布时间:2021-06-11
我确信这个问题在某个地方是重复的,但我找不到解决办法.我正在创建一个应用程序,其中一个功能允许用户选择他们将收到本地通知的日期和时间. 他们可以选择他们喜欢的一天中的任
我确信这个问题在某个地方是重复的,但我找不到解决办法.我正在创建一个应用程序,其中一个功能允许用户选择他们将收到本地通知的日期和时间.

他们可以选择他们喜欢的一天中的任何时间,并可以切换一周中的不同日期(周一,周二,妻子等).通知将每周发送一次.因此,我限制用户只创建3个通知 – 如果选择了所有7天,我会将repeatInterval设置为daily(一个通知).如果为每3个通知选择了6天,那么我将需要每天的单独通知(总共3×6 = 18个通知).很可能只会使用1个通知,所以这很好.

我知道如何在将来的某个时间设置通知,但如何在星期一下午6点设置通知?

下面是我用于测试的代码.它将来会设置4秒的警报(我从applicationDidEnterBackground调用它).

NSDateComponents *changeComponent = [[NSDateComponents alloc] init];
    changeComponent.second = 4;

    NSCalendar *theCalendar = [NSCalendar currentCalendar];
    NSDate *itemDate = [theCalendar dateByAddingComponents:changeComponent toDate:[NSDate date] options:0];

    UILocalNotification *localNotif = [[UILocalNotification alloc] init];
    localNotif.fireDate = itemDate;
    localNotif.timeZone = [NSTimeZone defaultTimeZone];
    localNotif.repeatInterval = NSWeekdayCalendarUnit;
与您现在正在做的完全相同,但以不同方式创建日期:

NSDateComponents *comps = [[[NSDateComponents alloc] init] autorelease];
[comps setDay:1];
[comps setMonth:1];
[comps setYear:2013];
[comps setHour:10];
[comps setMinute:10];
[comps setSecond:10];
localNotif.fireDate = [[NSCalendar currentCalendar] dateFromComponents:comps];
网友评论