swift_通知的使用

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.
}

}

时间: 2024-08-06 03:20:23

swift_通知的使用的相关文章

IOS 本地通知

在苹果的Mac OSX 和IOS开发的API中有三个不同的"通知",包括:广播通知,本地通知和推送通知. 本地通知只是应用所在设备上给用户通知,而推送通知是远程通知,他是由远程服务器推送过来的 本节主要是讲的本地通知,虽然本地通知并没有任何的网络通信,但是他在编程方面与后面要介绍的推送通知非常相似.我们的例子中有三个按钮,"计划通知开始"按钮开启计划通知,他在10秒钟后到达."停止所有计划通知"按钮式停止和取消已经开始的计划通知."立刻

Spring的环绕通知

首先加入jar包: com.springsource.net.sf.cglib -2.2.0.jar com.springsource.org.aopalliance-1.0.0 .jar com.springsource.org.aspectj.weaver-1.6.8 .RELEASE.jar commons-logging-1.1.3. jar spring-aop-4.0.0.RELEASE.jar spring-aspects-4.0.0.RELEASE.jar spring-bean

iOS---代理与协议以及通知的使用

一.代理 1.代理的介绍 代理是一种通用的设计模式 代理使用方式:A 让 B 做件事,空口无凭,签个协议. 所以代理有三部分组成: 委托方: 定义协议 协议   : 用来规定代理方可以做什么,必须做什么 代理方: 按照协议完成委托方的需求 2. 协议的介绍 协议是定义了一套公用的接口,是方法的列表,但是无法实现. 可以通过代理,实现协议中的方法. 协议是公用方法,一般写在一个类里面. 如果多个类都使用这个协议,可以写成一个peotocol文件. 3.代理的使用 (1)委托某人做某事   先建立一

React native中的组建通知通信:

有这么一个需求,在B页面pop()回到A页面,需要A页面执行刷新,那么我们可以采用以下方法: 1:在A页面Push到B页面中,加上一个A页面中的刷新函数做为参数,然后在B页面中在pop()函数封装后通过this.props.xxx来执行! 2:通过组建之间的通知(监听)来执行! 在A页面上: 在didmount中 this.listener = RCTDeviceEventEmitter.addListener('undateUserInfo',(value)=>{ // 接受到通知后刷新 co

redmine配置邮件通知服务

redmine是一款非常优秀的项目管理平台,但有个明显的缺点--没有消息推送功能,也就是说当redmine上的任务有更新时,干系人无法及时的获取消息.但redmine可以通过绑定邮箱.以邮件通知的形式给干系人推送任务更新提醒. 传统的redmine安装配置方法非常复杂,推荐大家使用bitnami一键安装服务,它集成了redmine所需的各种环境,像安装普通软件一样,非常方便. bitnami redmine 下载地址:https://bitnami.com/stack/redmine 当我们把r

nagios 自动恢复告警通知

nagios中在nagios告警时,有时候会禁用告警通知,监控恢复正常时禁用通知没有取消,导致下次监控不正常时没有告警通知:为防止这种情况,编写了恢复告警通知脚本,添加了恢复此类告警通知的例行任务 代码如下: #!/usr/bin/env python #Desc: to change services'notification status(0 or 1) if current state of service is ok while enable_notification is False

SharePoint 2010/SharePoint 2013 Custom Action: 基于Site Collection 滚动文字的通知.

应用场景: 有时候我们的站点需要在每个页面实现滚动文字的通知,怎么在不修改Master Page的情况下实现这个功能?我们可以使用Javascript 和 Custom Action 来实现. 创建一个Custom Action.主要使用到 Location = 'ScriptLink' 属性, 该属性可以动态的加载JavaScript 文件链接和代码块到模板页.代码如下: <Elements xmlns="http://schemas.microsoft.com/sharepoint/&

易宝典文章——玩转Office 365中的Exchange Online服务 之二十五 配置出站垃圾邮件策略通知

企业的邮件服务器应该遵从良好的发件规范,尽量减小发送垃圾邮件和批量邮件到外部邮件系统.这样可以保护企业的邮件服务器发送IP不被收集到垃圾邮件服务器列表中,从而保证从企业的邮件服务器或企业域名发送的邮件,收件方能够正常接收.基于此种情况,出站垃圾邮件筛选即尤为重要,因为它起到了保护企业邮件系统发送邮件的可靠性,同时也保护了企业在商业交往中的信誉和利益.Exchange Online的出站垃圾邮件筛选与入站筛选类似,均有连接筛选和内容筛选构成,但是出站筛选是无法进行配置的.不过可以配置出站垃圾邮件策

iOS pop使用通知传值

iOS pop回父级页面,使用通知传值 输入所要发送的信息 ,同时将label的值通过button方法调用传递, - (IBAction)buttonClick:(id)sender { //添加 字典,将label的值通过key值设置传递 NSDictionary *dict =[[NSDictionary alloc]initWithObjectsAndKeys:self.textFieldOne.text,@"textOne",self.textFieldTwo.text,@&q