管理您的应用程序安排的本地通知的好方法是啥?

Posted

技术标签:

【中文标题】管理您的应用程序安排的本地通知的好方法是啥?【英文标题】:What's a good way to manage the Local Notifications your app has scheduled?管理您的应用程序安排的本地通知的好方法是什么? 【发布时间】:2010-08-09 17:43:42 【问题描述】:

我正在潜入 ios 开发,并一直致力于开发一款闹钟应用程序以熟悉 iOS 平台和 SDK。我正在使用本地通知来处理我的警报,但我需要一些方法来管理我设置的本地通知,以便在我编辑或删除与它们关联的任何警报时可以更新它们。我想出了如何在安排本地通知后使用cancelLocalNotification: 函数取消安排本地通知,但我很难弄清楚如何检索与已编辑或删除的警报关联的本地通知对象,以便我可以使用该功能。我应该注意,用于创建本地通知的所有警报对象都存储在 Core Data DB 中,并且它们的接口定义为...

@interface Alarm :  NSManagedObject  



@property (nonatomic, retain) NSNumber * Snooze;
@property (nonatomic, retain) NSNumber * AlarmID;
@property (nonatomic, retain) NSString * Label;
@property (nonatomic, retain) NSDate * Repeat;
@property (nonatomic, retain) NSDate * Time;
@property (nonatomic, retain) NSNumber * Enabled;
@property (nonatomic, retain) NSString * Song;
@property (nonatomic, retain) NSString * Sound;

@end
    有什么好方法可以管理我的应用计划的本地通知,以便我以后可以检索这些本地通知对象并在需要时重新安排它们? 有没有办法检索您的应用已安排的本地通知? 如果是这样,有没有办法唯一地识别它们?

非常感谢您的帮助!

【问题讨论】:

【参考方案1】:

要回答问题 #2,请使用scheduledLocalNotifications,它将返回给您为您的应用安排的所有通知的 NSArray。

要回答问题 #3,请使用 UILocalNotification 类的 userInfo 属性。这是一本字典,你可以在那里保存任何你想要的东西。

【讨论】:

这只允许您有效地找到任何给定通知的数据库条目。反过来,查找给定数据库条目的通知对象将需要您搜索 scheduleLocalNotifications 数组。是否可以在 Core Data 中存储指针?或者不能保证通知保持在相同的内存地址?并不是说通过一个小数组进行搜索有什么大不了的。 scheduledLocalNotifications 仅检索 UILocalNotifications 的属性 repeatInterval 不同于 nil【参考方案2】:
    您可以使用 UIApplication 类 scheduleLocalNotifications 方法检索您的应用程序已安排的所有本地通知。

【讨论】:

以上是关于管理您的应用程序安排的本地通知的好方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

本地通知颤动

如何暂时禁用我的 iPhone 应用程序安排的所有本地通知?

如果在 iOS 设置中禁用通知访问时安排本地通知,则不会在 iOS 13 上触发本地通知

重新安排用户通知(本地)?

安排本地通知的数量

iPhone 应用程序的本地化 - 您的方法是啥?