iOS开发中的通知、MVC架构及C、Objective - C与Swift交互
1. 通知机制
通知中心是一个全局可见的对象,每个对象都能向其发送或接收通知。虽然使用通知可能看似有些“偷懒”,但有时一个对象确实无需知道消息的接收方是谁。
例如在简单的纸牌游戏应用中,当纸牌被点击时,纸牌对象无需了解游戏对象的情况,只需通过发布通知来发出“信号”。游戏对象已注册该通知,会在接收到通知后进行相应处理,代码如下:
NotificationCenter.default.post(name: .cardTapped, object: self)
再如,应用委托可能检测到需要重新构建界面。为避免内存泄漏等问题,所有正在运行重复定时器的视图控制器都需要使定时器失效。此时,应用委托可以通过发布通知来告知所有相关视图控制器,代码示例如下:
// 应用委托发布通知
NotificationCenter.default.post(name: .stopTimers, object: self)
// 视图控制器注册通知
NotificationCenter.default.addObserver(self, selector: #selector(stopTimer), name: .stopTimers, object: nil)
@objc func stopTimer() {
// 停止定时器的操作
timer.invalidate()
}
Cocoa本身也为许多委
iOS开发核心机制解析
超级会员免费看
订阅专栏 解锁全文
11

被折叠的 条评论
为什么被折叠?



