重复间隔设置为每小时时 UILocalNotification 应用程序崩溃

Posted

技术标签:

【中文标题】重复间隔设置为每小时时 UILocalNotification 应用程序崩溃【英文标题】:UILocalNotification app crash when repeat interval set to hourly 【发布时间】:2013-02-14 13:41:42 【问题描述】:

其他重复间隔工作正常,但是当我将通知设置为每小时重复一次并且计时器关闭时,应用程序只会冻结,并且在我清除所有本地通知之前无法重新打开应用程序。

switch(repeatType) 
            case kRepeatHourly:
                notif.repeatInterval = NSHourCalendarUnit;
                break;
            case kRepeatDaily:
                notif.repeatInterval = NSDayCalendarUnit;
                break;
            case kRepeatWeekly:
                notif.repeatInterval = NSWeekCalendarUnit;
                break;
            case kRepeatMonthly:
                notif.repeatInterval = NSMonthCalendarUnit;
                break;
            case kRepeatAnnually:
                notif.repeatInterval = NSYearCalendarUnit;
                break;
            default:
                break;
         

【问题讨论】:

能否请您使用 NSLog RepeatHourly 数据和时间。我认为时间不会更新 你的意思是NSLog(@"Notif: %@", notif); ? 是打印 [datePicker 日期]; 我设置了通知在一分钟内触发,并设置每小时重复间隔,这是设置UILocalNotification时通知描述的NSLog:pastebin.com/xxBYmUAt 对不起,这个 NSLog 是我测试分钟重复间隔的时候,但仍然发生了崩溃 【参考方案1】:
- (void)scheduleNotification 

    [reminderText resignFirstResponder];
    [[UIApplication sharedApplication] cancelAllLocalNotifications];

    Class cls = NSClassFromString(@"UILocalNotification");
    if (cls != nil) 

        UILocalNotification *notif = [[cls alloc] init];
        notif.fireDate = [datePicker date];
        notif.timeZone = [NSTimeZone defaultTimeZone];

        notif.alertBody = @"Did you forget something?";
        notif.alertAction = @"Show me";
        notif.soundName = UILocalNotificationDefaultSoundName;
        notif.applicationIconBadgeNumber = 1;

        NSInteger index = [scheduleControl selectedSegmentIndex];
        switch (index) 
            case 1:
                notif.repeatInterval = NSMinuteCalendarUnit;
                break;
            case 2:
                notif.repeatInterval = NSHourCalendarUnit;
                break;
            case 3:
                notif.repeatInterval = NSDayCalendarUnit;
                break;
            case 4:
                notif.repeatInterval = NSWeekCalendarUnit;
                break;
            default:
                notif.repeatInterval = 0;
                break;
        

        NSDictionary *userDict = [NSDictionary dictionaryWithObject:reminderText.text
                                                forKey:kRemindMeNotificationDataKey];
        notif.userInfo = userDict;

        [[UIApplication sharedApplication] scheduleLocalNotification:notif];
        [notif release];
    

更多详情下载源代码表格reference link here

【讨论】:

能否请您下载演示项目并检查一下。

以上是关于重复间隔设置为每小时时 UILocalNotification 应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

如何将本地通知重复间隔设置为自定义时间间隔?

UILocalNotification如何将repeatInterval设置为每两天?

在 Node.js 中为 postgres 表中的每一行以不同的间隔为每一行运行重复任务

本地通知 - 重复间隔/自定义时间不起作用

Pandas 将 5 分钟数据重新采样为每小时平均值:日期问题 [重复]

Heroku调度程序不是每小时运行一次