Swift回调及notifition消息机制

Swift回调及notifition消息机制,第1张

概述Swift的delegate和notifition机制 文件kvoDemo.swift import Foundation @objc   // 需要打开objc标识,否则@optional编译出错 //协议,,类似java的接口 定义这个接口,里面定义方法 protocol kvoDemoDelegate {     func willDoSomething()     optional  fu Swift的delegate和notifition机制 文件kvoDemo.swift import Foundation @objc // 需要打开objc标识,否则@optional编译出错 //协议,,类似java的接口 定义这个接口,里面定义方法 protocol kvoDemoDelegate { func willDoSomething() optional func dIDDoSomething() //可选实现,} //初始化全局变量notifition的名字 let ntfname = "test_notification" class kvoDemo : NSObject //不写NSObject默认就是从NSObject来的 { //声明这个接口为delegate var delegate: kvoDemoDelegate! overrIDe init() { } //定义一个方法执行协议的方法 func doSomething() { if let _ = self.delegate { delegate!.willDoSomething() } for _ in 1...5 { print("i'm doing Now,don't touch me,please.") } if let _ = self.delegate { delegate!.dIDDoSomething!() } } //发送notifition消息方法 func notificationPost() { let ntf = NSNotificationCenter.defaultCenter() ntf.postNotificationname(ntfname,object :nil,userInfo:nil) } deinit { } } 第二个文件VIEwController.swift import UIKit //实现协议delegate class VIEwController: UIVIEwController,kvoDemoDelegate{ //实现接口必须实现的方法,里面写方法的实现 //delegate func willDoSomething() { print("i will do it.") } func dIDDoSomething() { print("i had do it.") } //监听notifition发出的消息事件的方法 //notification func onRecviceNotification(notification:NSNotification) { print("Recevice notification \(notification)") } overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() // Do any additional setup after loading the vIEw,typically from a nib. //实例化kvoDemo类 let kvo = kvoDemo() //绑定 这里是比java回调中多出来的一步貌似 kvo.delegate = self //执行kvo中定义的方法 这方法中间就会执行到协议中的方法,然后就会执行本类中实现的协议的方法 kvo.doSomething() //注册notifition,监听 let ntf = NSNotificationCenter.defaultCenter() //接受到消息就会执行方法onRecviceNotification ntf.addobserver(self,selector:"onRecviceNotification:",name :ntfname,object : nil) //发送notifition消息 kvo.notificationPost() //取消观察者的身份 ntf.removeObserver(self) } } 总结

以上是内存溢出为你收集整理的Swift回调及notifition消息机制全部内容,希望文章能够帮你解决Swift回调及notifition消息机制所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1082204.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存