【问题标题】:How To set Custom repeat interval For Nslocal Notification.....?如何为 Nslocal 通知设置自定义重复间隔.....?
【发布时间】:2011-08-09 05:32:49
【问题描述】:

我是 iphone 开发的新手。我正在尝试在我的项目中使用 NslocalNotification 我需要每 2 小时或每两天或每两个月等进行提醒。目前我正在使用 NslocalNotification 重复间隔。但它使用 Nscalender 每小时只工作一分钟 ....

        NSString *InterVal=[freQuencyArr objectAtIndex:index-2];
        NSString *InterValType=[freQuencyArr objectAtIndex:index-1];
        if(![InterVal isEqualToString:@"Every"])
        {  
         result=[InterVal intValue];
        }else
          result=1;
        if([InterValType isEqualToString:@"Day"]){
             notification.repeatInterval= NSDayCalendarUnit;    
        }else if([InterValType isEqualToString:@"Week"]){
            notification.repeatInterval= NSWeekCalendarUnit;    
         }
        else if([InterValType isEqualToString:@"Month"]){
            notification.repeatInterval= NSMonthCalendarUnit;   
        }else if([InterValType isEqualToString:@"days"]){
             notification.repeatInterval=result*24*60*60;
        }

here 如果结果为 2,则取决于 IntervalType 我需要通知 它不和我一起工作

         if([InterValType isEqualToString:@"days"]){
             notification.repeatInterval=result*24*60*60;
        }

【问题讨论】:

  • 我的回答对您有帮助吗?

标签: iphone objective-c nsnotifications nsnotificationcenter


【解决方案1】:

@斯里尼瓦斯:

如果您查看我在此答案中发布的链接,您会知道我已经在这里尝试了所有可能的解决方案来尝试做您目前想做的事情。

我已经尝试了所有这些以在我的应用程序中实现它,但这不起作用。

我不敢这么说,但这是不可能的。它只允许将 unit NSCalendarUnit 对象设置为重复间隔。

我花了将近 2 个月的时间(我在 2010 年 12 月提出这个问题,并在 2011 年 2 月自己回答了这个问题)来尝试通过不同的文章和不同的论坛实施互联网上所有可能的解决方案,但没有任何帮助。

如果有什么对你有用的话,请查看我的链接并寻找所有答案。

How to set Local Notification repeat interval to custom time interval?

真的希望这对你有帮助。

【讨论】:

  • 哈.. 现在我决定我们不能更改自定义重复间隔。
  • 是否有任何可能的解决方案重复通知而不使用重复间隔?
  • @Srinivas:说真的,我不认为我们可以通过任何方式做到这一点,因为notification.repeatInterval 的接收者类型为NSCalendarUnit 我不认为这是可能的它以某种方式让自定义间隔工作
  • ha.im thinking .its 我在项目中要求重复通知。是否可以将 nslocalNotification 对象存储在 Db 中?
  • @Srinivas :我不是那个,但也许你可以尝试使用 blob 数据类型。但老实说,我从未尝试过,对此我也不太了解。希望这会有所帮助。
【解决方案2】:

UILocalNotificationrepeatInterval 属性不能用于重复少于每个日历单位,即每天、每周、每月等。

相反,您必须安排多个通知来达到预期的效果,相应地设置fireDate 属性。

【讨论】:

  • 它是一个医学应用程序我们有几个相同药物名称的时间表。所以我如何设置每次开火日期。它的工作完美的每一天月分钟,小时。
  • 是否可以在数据库中使用 NslocalNotification 对象。如果可能,请提供一些指导
  • 拥有绝对的权利,但有没有办法重复间隔。将通知对象存储在数据库中。请帮助我。如果可能的话,提供任何示例代码
【解决方案3】:

正如 lemnar 所说,您无法使用 repeatInterval 以不同于 Apple 提供的日历单位的频率重复。所以,下面的代码:

     if([InterValType isEqualToString:@"days"]){
         notification.repeatInterval=result*24*60*60;
    }

不会做任何事情。我还在我构建的应用程序中使用重复通知,我解决这个问题的方法是创建多个通知,每个通知都重复以提供“所需的”重复频率。例如,如果我想“每 2 天”重复一次,我无法使用 repeatInterval 执行此操作。但是,我的应用程序中有一个“调度功能”,可以创建多个单独的通知来实现这一点。我这样做会花费任意时间(在我的情况下是一周)。所以在上面的例子中,当用户指定他/她从今天起每两天需要一个通知时,我创建了 3 个通知(第 3 天、第 5 天和第 7 天各一个)。

对于以小于日历单位的频率重复,事情会容易一些。假设我需要每 12 小时重复一次(早上 6 点和下午 6 点)。然后,我将创建 2 个通知(一个用于早上 6 点,另一个用于下午 6 点)。然后,我会将这些通知中的每一个的 repeatInterval 设置为 NSDayCalendarUnit。这样我就创建了一组每 12 小时重复一次的通知。

当我的应用加载时,我会再出去 7 天,然后根据需要重新创建通知。不是最优雅的解决方案,但这是我能想到的绕过 repeatInterval 限制的最佳方式。

【讨论】:

  • 感谢您的出色回答.....正如您所说当我的应用程序加载时,我会再出去 7 天并根据需要重新创建通知。当收到通知或应用程序何时激活...
猜你喜欢
  • 2011-05-20
  • 2019-11-13
  • 1970-01-01
  • 2015-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多