iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 28
0
自我挑戰組

Swift!從新手到微上手系列 第 28

Swift-Notification

Notification Center如何運作

Notification Center運作原理,分為三個部分

  • "listener"偵聽notificiations,稱作觀察者
  • "sender"當事件發生時,通知notifications
  • "notification center"追蹤上述兩者

來簡單看一個例子

  • 你在一個需要把郵件送到五個不同色彩的街道的郵局工作
  • 你是其中一個郵差,當郵局收到信件時,需要把紫色的信件,送到紫色的街道。
  • 輪到你值班時,你告訴郵件中心說,你想要知道紫色郵件何時會抵達
  • 一段時間後,住在黃色街道的人要寄送一封紫色信件到紫色街道
  • 所以他寄了一封信件到郵局。這時通知中心告知紫色郵件抵達。
  • 你從通知中心拿到信件後,再將信件送到紫色街道。

這種機制寄件人,跟分寄信的人不需要知道彼此是誰,他們只需要知道通知中心"Notification Center"
此外,Notification Center也可以處理一對多或多對多的事件。

回到實際應用,這圖是Notification Center的流程

上圖說明了什麼

  1. Component B透過addObserver(_:selector:name:object:)通知Notification Center
  2. 某事件發生在Component A ,像是資料輸入或是事件完成
  3. Component A發出通知到Notification Center
  4. Notification Center透過調用Component B的#selector來吿知Component B觀察到事件已發生
  5. 當selector被呼叫後,執行Component B的功能

Component A 和 B 可以是任何class,例如View Controller、custom API或是data


上一篇
Swift-MVC
下一篇
Swift-Frame&Bound
系列文
Swift!從新手到微上手30

尚未有邦友留言

立即登入留言