NotificationCenter 內部以無序集合(如 NSHashTable)存儲觀察者,**不保證調用順序**
DispatchQueue,保證先後順序。
let serialQueue = DispatchQueue(label: "com.app.notification.serial")
NotificationCenter.default.addObserver(forName: .myEvent, object: nil, queue: nil) { _ in
serialQueue.async { /* 順序執行的任務 */ }
}
performSelector:afterDelay: 強行排序,不可靠且難維護。設計通知時假設「順序隨機」,通過架構手段消除順序耦合,而非試圖控制順序。