【问题标题】:How to set Alarm Every Monday, Tuesday, Wednesday每周一、二、三如何设置闹钟
【发布时间】:2013-04-03 10:16:18
【问题描述】:

我想每天设置闹钟,请帮帮我 很多天以来,我都对此感到困惑。 我正在使用此代码

-(void)localNotificationWithData:(NSDate *)firDate timeinterval:(int)interval{

NSCalendar *calender = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSDate *pickerDate = firDate;
NSLog(@"%@",pickerDate);

NSDateComponents *dateComponents = [calender components:( NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSWeekCalendarUnit)fromDate:pickerDate];
/*... here we get Weekdays throug loop....*/
int rand = arc4random()%100;
NSLog(@"%d",rand);
for (int i=0; i<[strMarkList length]; i++) {
    NSString *getselectedCell=[strMarkList substringWithRange:(NSRange){i,1}];
    NSLog(@"%i",[getselectedCell intValue]);
    if ([getselectedCell intValue]== 0) {
        [dateComponents setDay:1];
        [dateComponents setWeekday:1];
        NSDate *itemDate = [calender dateFromComponents:dateComponents];
        [self repeatWeekDayInterval:itemDate rand:rand];
    }else if ([getselectedCell intValue]== 1) {
        [dateComponents setDay:2];
        [dateComponents setWeekday:2];
        NSDate *itemDate = [calender dateFromComponents:dateComponents];
        [self repeatWeekDayInterval:itemDate rand:rand];
    }else if ([getselectedCell intValue]== 2) {
        [dateComponents setDay:3];
        [dateComponents setWeekday:3];
        localNofi.repeatInterval = kCFCalendarUnitWeekday+7;
        NSDate *itemDate = [calender dateFromComponents:dateComponents];
        [self repeatWeekDayInterval:itemDate rand:rand];
    }else if ([getselectedCell intValue]== 3) {
        [dateComponents setDay:4];
        [dateComponents setWeekday:4];
        NSDate *itemDate = [calender dateFromComponents:dateComponents];
        [self repeatWeekDayInterval:itemDate rand:rand];
    }else if ([getselectedCell intValue]== 4) {
        [dateComponents setDay:5];
        [dateComponents setWeekday:5];
        NSDate *itemDate = [calender dateFromComponents:dateComponents];
        [self repeatWeekDayInterval:itemDate rand:rand];
    }else if ([getselectedCell intValue]== 5) {
        [dateComponents setDay:6];
        [dateComponents setWeekday:6];
        NSDate *itemDate = [calender dateFromComponents:dateComponents];
        [self repeatWeekDayInterval:itemDate rand:rand];
    }else if ([getselectedCell intValue]== 6) {
        [dateComponents setDay:7];
        [dateComponents setWeekday:7];
        NSDate *itemDate = [calender dateFromComponents:dateComponents];
        [self repeatWeekDayInterval:itemDate rand:rand];
    }
}
/*.....end.....*/


// NOW LOCALNOTIFICATION FIRE

}

 -(void)repeatWeekDayInterval:(NSDate *)itemDate rand:(int)rand{
if (localNofi == nil)
    return;
localNofi.fireDate = itemDate;
NSLog(@"%@",itemDate);
localNofi.timeZone = [NSTimeZone defaultTimeZone];
localNofi.alertBody = @"Time To Weak Up";
localNofi.alertAction = @"View";
localNofi.soundName = @"alarm-clock-bell.caf";
localNofi.applicationIconBadgeNumber = 1;
localNofi.repeatInterval = NSWeekCalendarUnit;

identifiLclNoti = rand;
NSDictionary *infoDict = [NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"%d",identifiLclNoti] forKey:@"identifyKey"];
localNofi.userInfo = infoDict;
NSLog(@"%@",localNofi);
[[UIApplication sharedApplication] scheduleLocalNotification:localNofi];

}

请告诉我出了什么问题,或者我在这个问题上停留了很多天我在谷歌上搜索了很多次但找不到任何好的方法请为我做点什么 请帮帮我......谢谢

【问题讨论】:

    标签: iphone nsdate nscalendar


    【解决方案1】:

    我刚刚看到了您的日程安排通知代码,它可以正常工作。只需要每周更改以下内容即可弹出本地通知。

    localNofi.repeatInterval = NSWeekdayCalendarUnit;
    

    我已经在 iOS 6.0 模拟器上进行了测试,得到了所需的结果,如果它不起作用,请告诉我。

    【讨论】:

    • 好的,我添加了,但是今天还有一个问题是周三,现在当我选择周一 周二 周三 周四 周五 周六 周日 ok 然后闹钟从周三 周三 周三 开始,然后继续,但不添加周一和周二因为今天是星期三,我的问题是如何解决它。
    • 我认为它只有一个解决方案添加时间表通知仅用于以编程方式重复工作日。我不认为只有一个 repeatInterval 和一个通知可以实现..
    • 看看我的tableviewcell我设置了星期一星期二星期三星期四星期五星期六星期天如果所有选择然后上面的代码正常运行当我得到所有警报然后星期一和星期二转换星期三meadn三个警报成为星期三第一个是今天警报星期三和前 2 个今天意味着星期一和星期二也转换为星期三
    • 当我选择所有单元格然后得到所有警报并打印这是结果并告诉我这是正确答案pastie.org/7299962检查并告诉我
    猜你喜欢
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多