更新本地通知的开火日期并取消之前的通知

2024-02-22

我知道有几个问题here https://stackoverflow.com/questions/5866146/remove-a-local-notification-from-iphone-by-date and there https://stackoverflow.com/questions/6340664/delete-a-particular-local-notification关于如何删除本地通知,可能是全部或特定通知。我也经历过本地通知类参考 https://developer.apple.com/documentation/uikit/uilocalnotification并找到了一些方法,例如重复时间间隔、火灾日期、警报正文、时区等...但我无法找到有关如何修改已设置的火灾日期的某种信息。假设用户设置了今天的日期和下午 4:50 的通知,但如果用户希望修改设置的日期/时间,则发生的情况是通知在这两种情况下都会触发。就编程道德而言,这是一个错误!

实际上我想要的是必须取消之前的通知,即必须将日期修改为已编辑的日期,并且应在新日期设置并触发通知。

这就是我设置通知的方式,示例代码:

- (void)setNotification
{
    //Set notification after confirmation of saved data

    Class cls = NSClassFromString(@"UILocalNotification");
    reminderNotification = [[cls alloc] init];

    if (cls != nil) 
    {        
       NSDateFormatter *dateFormat = [[[NSDateFormatter alloc]init]autorelease];
       [dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
       NSDate *notificationDate = [dateFormat dateFromString:textField2.text];
       reminderNotification.fireDate = notificationDate;
       reminderNotification.timeZone = [NSTimeZone defaultTimeZone];
       NSString *reminderText = [NSString stringWithFormat:@"%@ 's %@ on %@",textField.text,textField1.text,strDate];
       reminderNotification.alertBody = reminderText;
       reminderNotification.alertAction = @"View";
       reminderNotification.soundName = @"lazy_afternoon.mp3";
       reminderNotification.applicationIconBadgeNumber = 1;
       NSDictionary *userDict = [NSDictionary dictionaryWithObject:self.textField1.text forKey:kReminder];
       reminderNotification.userInfo = userDict;
       [[UIApplication sharedApplication] scheduleLocalNotification:reminderNotification];
       [reminderNotification release];
    }
}

如何处理这个任务呢?


使用此方法来安排通知,其中通知ID必须是唯一的

 -(void) scheduleNotificationForDate:(NSDate *)date AlertBody:(NSString *)alertBody ActionButtonTitle:(NSString *)actionButtonTitle NotificationID:(NSString *)notificationID{

    UILocalNotification *localNotification = [[UILocalNotification alloc] init];
    localNotification.fireDate = date;
    localNotification.timeZone = [NSTimeZone localTimeZone];
    localNotification.alertBody = alertBody;
    localNotification.alertAction = actionButtonTitle;
    localNotification.soundName = @"yourSound.wav";

    NSDictionary *infoDict = [NSDictionary dictionaryWithObject:notificationID forKey:notificationID];
    localNotification.userInfo = infoDict;

    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
}

使用此方法取消具有该通知 ID 的特定通知

- (void)cancelLocalNotification:(NSString*)notificationID {
    //loop through all scheduled notifications and cancel the one we're looking for
    UILocalNotification *cancelThisNotification = nil;
    BOOL hasNotification = NO;

    for (UILocalNotification *someNotification in [[UIApplication sharedApplication] scheduledLocalNotifications]) {
        if([[someNotification.userInfo objectForKey:notificationID] isEqualToString:notificationID]) {
            cancelThisNotification = someNotification;
            hasNotification = YES;
            break;
        }
    }
    if (hasNotification == YES) {
        NSLog(@"%@ ",cancelThisNotification);
        [[UIApplication sharedApplication] cancelLocalNotification:cancelThisNotification];        
    }
}

参考 : UI本地通知 http://developer.apple.com/library/ios/#documentation/iphone/Reference/UILocalNotification_Class/Reference/Reference.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更新本地通知的开火日期并取消之前的通知 的相关文章

  • 以编程方式单击 tabbarController 的选项卡

    我有 2 个带有 Nib 文件的选项卡按钮 在按下选项卡 1 上的按钮时 我希望它显示选项卡 2 的视图 而不是单击选项卡栏按钮 2 我的意思是 我想以编程方式单击第二个选项卡栏按钮 我怎样才能做到这一点 可能吗 您必须创建一个包含以下内容
  • JavaScript 计算从今天到 7 天前的日期

    我正在计算从今天开始的日期前 12 天 但它不会返回正确的日期 例如 对于今天的日期 11 11 2013 mm dd yyyy 它返回 10 30 2013 而它应该返回 10 31 2013 这是代码 var d new Date d
  • nspredicate 数组中的多个项目

    如何使用NSPredicate满足多个条件 NSEntityDescription entity NSEntityDescription entityForName MessageData inManagedObjectContext ma
  • iphone sdk - 调用视图的超级视图的视图控制器的方法

    你好 我如何在当前视图中调用当前视图的超级视图的视图控制器中实现的方法 你能帮我吗 谢谢 通常这是通过代表完成的 让您的视图接口定义一个协议和对某个委托的引用 然后让你的父视图控制器实现这个协议 然后父母会这样做 someView fooD
  • iPhone OS:从匿名对象获取方法和变量列表

    我正在构建我的第一个 iPhone Obj c 应用程序 并且我有大量的数据保存子类 我将它们传递给引用函数 对于 cite 函数 这些对象是匿名的 我需要找到一种方法来访问每个传递对象的所有变量 我一直在使用预构建的 NSArray 和选
  • 特定时间的 iPhone 本地通知

    我想每周晚上 10 点 无论哪个国家 地区 发出通知 我需要使用时区吗 目前 我使用下面的代码每周触发通知 但如何在晚上 10 点准确触发通知 NSDate date NSDate date NSDate myNewDate date da
  • 如何将 UIPopoverPresentationController 的高度设置为与 UITableView 相同

    我在我的应用程序上使用 UIPopoverPresentationController 在我的 iPhone 上显示弹出窗口 使用 UIModalPresentationNone 我希望尺寸随着 UITableView 的高度而动态变化 但
  • iOS 4.0 contentScaleFactor 和比例 - 在 3.1.3 中如何处理?

    我的任务是制作一个在 iOS 4 0 中运行的应用程序再次在 3 1 3 和 3 2 中运行 大多数情况下 它很简单 但处理新 API 的扩展和其他必须传递 返回值的情况很困难 respondsToSelector performSelec
  • 如何在 UIAlertView (iOS) 中的其他两个按钮(堆叠)之间添加取消按钮

    我正在尝试创建一个带有三个按钮 将堆叠 的 UIAlertView 我希望 取消 按钮位于其他两个按钮之间的中间 我尝试将 cancelButtonIndex 设置为 1 但如果还有其他两个按钮 它只会将它们放置在索引 0 和 1 处 我知
  • 在完成块中保留循环

    在我的课堂上 我创建了这个方法 void refreshDatasourceWithSuccess CreateDataSourceSuccessBlock successBlock failure CreateDataSourceFail
  • 如何以编程方式设置设备(UI)方向?

    希望屏幕 UI 上的所有内容都能够从横向左向右旋转 反之亦然 我该怎么做呢 这是私人的吗 我知道 BOOL shouldAutorotateToInterfaceOrientation UIInterfaceOrientation inte
  • UILocalNotification 在后台 10 分钟后不提示

    In didFinishLaunchingWithOptions调用函数的定时器循环httpRequest每 1 分钟间隔一次 BOOL application UIApplication application didFinishLaun
  • 如何将图像放入此 UIPickerView 中?

    我不知道如何创建一个在文本一侧带有图像的自定义 UIPickerView 我一直在寻找一种方法 我刚刚发现了这个 UIView pickerView UIPickerView pickerView viewForRow NSInteger
  • 如何开始复杂级别的跨平台移动应用开发? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 检测 iPhone 是否在运行时运行调试/分发构建

    是否可以在运行时检测正在运行的应用程序是否是通过调试或分发进行编译的 在项目信息中 对于调试配置 添加 DEBUG 预处理器宏 在 GCC 4 2 预处理部分 在代码中 如果您想要包含或不包含某些代码用于调试版本 则可以使用 ifdef 来
  • 从 UIPickerView 的选定行设置 UIButton 的标题

    详细场景是这样的 我使用循环创建 10 个按钮并设置 0 9 的标签 点击每个按钮时 我将调用 UIPickerView 在其中加载来自不同数组的数据 到这里我就得到了预期的结果 但我希望 pickerView 中选定的行应设置为相应按钮的
  • 如何使用 iPhone 将照片上传到服务器?

    我正在编写一个 iPhone 应用程序 它可以拍摄照片然后将其上传到服务器 如何使用 Cocoa 将照片上传到服务器 我想我在某处使用 NSUrl Thanks Header interface EPUploader NSObject NS
  • 直接在 XCode 中编译 Arm Assembly

    将arm汇编代码编译成xcode的最佳方法是什么 我有生成的那些程序集文件 有没有办法可以将 s 文件直接包含到我拥有的 C 代码中 或者我需要先运行一个预处理器 它将生成 o 文件 我可以将其与我的文件链接 如果是这样的话 在 XCode
  • 如何向标准 UIButton 添加徽章? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 是否可以在标准中添加看起来标准的徽章UIButton 如果不支持半原生 那么实现此目的最简单的方法是什么 示例图片 这是 Sascha
  • 图像作为电子邮件附件

    我想构建一个应用程序 我可以在电子邮件中附加图像 打开图像并将其设置为我的壁纸 我想让它跨平台 所以你能告诉我是否可以使用phonegap 或者我是否必须为iphone和android构建一个本机应用程序 您好 如果您只想通过电子邮件附加图

随机推荐

  • Python 变量的字符串编码

    我知道对于Python u Plants vs Zombies 2 encode utf 8 如果我有一个变量 比如 appName 而不是字符串 我可以这样做吗 appName Plants vs Zombies 2 u appName
  • WiX:补丁安装程序取代以前的版本(1.0.0 -> 1.0.1、1.0.0 -> 1.0.2、1.0.1 -> 1.0.2 等)

    我正在尝试提供一个简单的安装程序包 MSI 我希望通过取代所有以前的补丁的更新 补丁 来支持它 所以我有一个MSI V1 0 0和2个补丁V1 0 1和V1 0 2 用户应该能够只安装最新的补丁 无论系统上已经应用了哪些先前的补丁 我的项目
  • 使用 oAuth2orize 传递“资源所有者密码流”的可信客户端信息

    我在理解如何使用 oAuth2rize 和 Passport js 实现资源所有者密码流程时遇到一些问题 特别是在 client id 和 client secret 的传输方面 以便我可以对客户端进行一些检查 以确保任何内容进入此端点 使
  • 点击情节提要中的按钮时出现不同的图像

    我有一个按钮 我想在突出显示状态下使用不同的背景图像 通常我会使用类似的东西 buttonObject setBackgroundImage UIImage imageNamed buttonDown png forState UICont
  • Dojo 1.7 如何在 require() 之外使用 dojo 组件

    我在 Dojo 1 7 2 中使用 AMD 加载程序创建了如下所示的 Dojo 小部件 var myCpane require dijit layout ContentPane function ContentPane myCpane ne
  • 单击浏览器后退按钮时如何警告用户

    我想在用户单击浏览器 后退按钮 时警告用户 然后在确认后重定向他们 下面是我的 JS 代码 但仅适用于 Firefox 我想让它也适用于 Chrome 和其他浏览器 注意 为了在 Chrome 中触发该事件 我需要首先单击页面主体 然后单击
  • 如何让机器人 DM 列出人员列表? (Discord.py)(重写)

    所以这会向我 提及的任何人发送一条私信 bot command pass context True async def pm ctx user discord User await user send hello 我如何更改它以向文本文件中
  • 使用 PyQt5,如何使 QComboBox 可搜索?

    我正在使用 PyQt5 制作 GUI 在它上面 我有一个 QComboBox 其中有一个包含 400 多个项目的下拉列表 我想知道是否有什么方法可以在 QComboBox 中输入来搜索匹配的案例 你可以使用QCompleter为了这 对于可
  • 在 Java 中旋转 NxN 矩阵

    这是破解编码面试中的一个问题 该解决方案表示 程序先旋转外边缘 然后旋转内边缘 但是 我在遵循两个 for 循环的逻辑时遇到了困难 有人可以解释代码的逻辑吗 例如为什么他们执行 layer top 和 bottom gt left 等四个步
  • 转义sql插入字符串的最佳方法?

    转义 sql 插入 更新字符串的最佳方法是什么 我想允许使用特殊字符 包括 和 在插入语句中使用每个字符串之前 搜索和替换每个字符串的最佳方法是吗 Thanks 重复 防御sql注入和跨站脚本的最佳方法 https stackoverflo
  • 如何在本地机器和minikube之间传输文件?

    我使用的是 Ubuntu 16 0 4 操作系统 并在其上安装了 minikube 我需要将一些文件复制到 minikube 那么我该怎么做呢 我尝试了下一个命令 但它询问我密码 但我不知道 scp media myuser sourceF
  • 如何安装特定版本的 H2O

    我需要安装旧版本的 H2O 因为即使版本只有一个 3 26 0 2 与 3 26 0 3 模型加载也不起作用 我正在努力寻找可以找到下载链接的页面 为什么它不存在 所有软件都有一个存档或旧版本页面 我还尝试使用当前版本的链接 但没有运气 因
  • 在网络浏览器中实现一个好的 redis 客户端需要什么?

    之前已经有人问过这个问题我可以从浏览器中运行的 JavaScript 直接连接到 Redis 服务器吗 https stackoverflow com questions 5759120 can i connect directly to
  • 如何在 Flutter 中的 Scaffold.drawer 中保存 widget 的状态?

    我想保持小部件的状态Scaffold drawer The Scaffold drawer是一个自定义小部件 它有一个升起按钮在里面 当单击按钮时 按钮中的文本发生变化 但是 当抽屉关闭并重新打开抽屉时 更改的文本将被重置 我已经使用 与A
  • Graphviz --- 边标签距离另一条边太近

    我有以下代码 其结果如下图所示 正如您所看到的 边缘和边缘标签周围有点拥挤 尤其是 a 周围 创造更多空间的最佳方法是什么 以便人们可以清楚地看到哪个标签属于哪个边缘 digraph finite state machine pad 0 2
  • “存储”REST 原型如何不创建新资源和新 URI?

    REST API 设计表明有四种资源原型 文档 集合 存储和控制器 存储不创建新资源 因此 商店永远不会生成新的 URI 一个例子 PUT users 12245 favorites boston celtics 一位用户将波士顿凯尔特人队
  • Jersey 2.26 和 Spring 4.3.10,但没有 HK2

    是否可以将 Jersey 2 26 x 配置为仅依赖 Spring 进行注入而不是 HK2 我知道 Jersey 现在与 Spring 兼容 但是是否也可以完全摆脱 HK2 不 不是 Jersey 使用了 hk2 的许多特殊功能 例如与 S
  • R 中的广义降梯度 (GRG2) 算法

    有谁知道哪个R包实现了广义降低梯度 GRG2 算法 谢谢 由于 BenBolker 已经完成了初步的工作来寻找您希望复制的功能类型 因此我发布了一个可能有用的后续内容 最近 Rhelp 上的一次交流以 R 提名的报价结束fortunes包裹
  • Android Espresso - 单击带有图像和文本的导航抽屉项目

    当导航抽屉由带有图像和文本视图的行列表组成时 如何单击导航抽屉项目 我使用了来自以下位置的 Espresso 测试源示例 git testapp test src main java com google android apps comm
  • 更新本地通知的开火日期并取消之前的通知

    我知道有几个问题here https stackoverflow com questions 5866146 remove a local notification from iphone by date and there https s