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.
}
}
轉載于:https://www.cnblogs.com/lcl15/p/7573484.html
總結
以上是生活随笔為你收集整理的swift_通知的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js取小数点后两位数的方法
- 下一篇: 浅析正则表达式——柳暗花明又一村篇