import UIKit

class ViewController: UIViewController {
//定义通知的名字,Notification 的“名字”不再是字符串类型,而是 Notification.Name 类型
let myNotification = Notification.Name(rawValue:"MyNotification")
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let nc = NotificationCenter.default
//发送通知
nc.post(name:myNotification,
object: nil,
userInfo:["message":"Hello there!", "date":Date()])
}
override func viewDidLoad() {
super.viewDidLoad()
let nc = NotificationCenter.default
//添加通知,通知处理尽量
nc.addObserver(forName:myNotification, object:nil, queue:nil, using:catchNotification)

}
func catchNotification(notification:Notification) -> Void {
print("Catch notification")
//guard语句和if语句有点类似,都是根据其关键字之后的表达式的布尔值决定下一步执行什么。但与if语句不同的是,guard语句只会有一个代码块,不像if语句可以if else多个代码块。
//userInfo变量的作用域是在整个方法体内
//guard方法可以自动解包
guard let userInfo = notification.userInfo,
let message = userInfo["message"] ,
let date = userInfo["date"] else {
print("No userInfo found in notification")
return
}

//提醒框
let alert = UIAlertController(title: "Notification!",
message:"\(message) received at \(date)",
preferredStyle: UIAlertControllerStyle.alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil))
alert.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.cancel, handler: nil))
self.present(alert, animated: true, completion: nil)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

}

转载于:https://www.cnblogs.com/lcl15/p/7573484.html

swift_通知的使用相关推荐

  1. 程序主动进行电话短信报警,自定义电话、短信、钉钉报警通知

    程序主动进行电话短信报警,自定义电话.短信.钉钉报警通知 一. 规则说明 这里我们要利用到阿里云的云监控的手段,有一个叫做事件监控的东西,可以通过自定义事件上传来进行监控报警. 流程: 程序发现错误 ...

  2. 微信支付回调重复通知,正确的响应

    好多人遇到这个问题,微信异步请求notify_url,我们接收到通知了,并且给微信返回下面的xml了,但是微信还是不停的给我们发通知.处理完业务后,新增如下代码: 微信文档:https://pay.w ...

  3. spring 基于XML的申明式AspectJ通知的执行顺序

    spring 基于XML的申明式AspectJ通知的执行顺序 关于各种通知的执行顺序,结论:与配置文件中的申明顺序有关 1. XML文件配置说明 图片来源:<Java EE企业级应用开发教程&g ...

  4. [UWP]实现一个轻量级的应用内消息通知控件

    [UWP]实现一个轻量级的应用内消息通知控件 原文:[UWP]实现一个轻量级的应用内消息通知控件 在UWP应用开发中,我们常常有向用户发送一些提示性消息的需求.这种时候我们一般会选择MessageDi ...

  5. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?...

    一.垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?   1.对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址.大小以及使用情况. 通常, ...

  6. Android监听左右滑删除通知,Android 滑动监听RecyclerView线性流+左右划删除+上下移动...

    废话不多说了,直接给大家贴代码了.具体代码如下所示: xmlns:tools="http://schemas.android.com/tools" android:layout_w ...

  7. 龙岩学院计算机二级报名时间,福建龙岩学院2015年12月计算机等级考试报名通知...

    福建龙岩学院2015年12月计算机等级考试报名通知 各学院: 根据上级有关文件通知,2015年12月福建省高校学生计算机应用水平等级考试开始报名,现将有关事项通知如下: 一.考试内容: 本次一.二考试 ...

  8. 武汉大学计算机学院放假时间,计算机学院关于2019年学生放暑假的通知

    各学生班: 根据校历,2019年7月21日至8月31日为学校放暑假时间.为加强我院学生暑假期间的教育及管理工作,现将有关事项通知如下: 一.时间安排 在校普通本科生和研究生于7月21日(星期日)开始放 ...

  9. consul服务下线通知_Consul微服务的配置中心体验篇-阿里云开发者社区

    Spring Cloud Consul 项目是针对Consul的服务治理实现.Consul是一个分布式高可用的系统,具有分布式.高可用.高扩展性 Consul Consul 是 HashiCorp 公 ...

最新文章

  1. 以下哪一个不属于python语言的特点-以下不属于python语言特点的是( )_学小易找答案...
  2. Python OS模块使用汇总
  3. SpringMVC的数据响应-页面跳转-返回字符串形式(应用)
  4. java等待_Java学习:等待唤醒机制
  5. android 号码查联系人,Android联系人查询
  6. oracle数据库非归档模式数据备份和恢复
  7. .NET 重生之旅——序言
  8. WIN10 3个手指拖动_想预防老年痴呆,这5个吃饭习惯请立刻改掉,这3个手指动作马上做起来!...
  9. [WildPackets.OmniPeek].OmniPeek.4.0.1
  10. Unity到VRay的渲染方法
  11. 【Android 教程系列第 31 篇】通过 adb install 命令安装 apk 时提示 signatures do not match previously installed version
  12. 511遇见易语言学习易语言常量
  13. 避坑14_此浏览器或应用可能不安全。了解详情请尝试使用其他浏览器。
  14. 计算机英语期末考,《计算机英语》期末考试试卷.doc
  15. hive行转列的高级用法later view explode
  16. Linux入门+环境搭建云服务器
  17. Motif分析中的PFM、PPM、PWM
  18. 新工必看:工作对于你意味着什么
  19. SSM之一步一坑:将date类型存入到datetime类型数据表 时差八小时
  20. html弹窗是否删除,javascript删除前弹出确认/取消询问窗口confirm

热门文章

  1. 热部署插件JRebel使用解决方案(安装+踩坑+使用方法)傻瓜式超详细!!!
  2. 微信小程序点击按钮实现手机振动功能
  3. 一文读懂RPA与BPM的区别和联系
  4. 人工智能与大数据的耦合,将会怎么影响我们的生活
  5. Linux shell 操作命令 mkdir
  6. 使用Nginx反向代理和proxy_cache缓存搭建CDN服务器加快Web访问速度
  7. 关于salt MD5
  8. Qucs 产生大文件的一个bug
  9. ext 部署到 tomcat服务器下,通过http8080端口查看
  10. Mysql5.5部署MHA