Swift 中来自蓝牙单例 class 的视图控制器中的观察者

Observers in view controllers from Bluetooth singleton class in Swift

我创建了一个单例 class 来与多个视图控制器交互。如何从单例通知蓝牙状态 class?

import UIKit
import CoreBluetooth
        
class MyBluetoothManager: CBCentralManagerDelegate, CBPeripheralDelegate{
       
        static let shared = MyBluetoothManager()
        
        let central = CBCentralManager(delegate: MyCentralManagerDelegate.shared,
                                       queue: nil, options: nil)
}  

我将来会实现 CBPeripheral 的委托。如果有任何现有的博客,请告诉我。

可以考虑NotificationCenter.

在您的视图控制器中,您需要为您的自定义通知类型添加观察者。例如:

NotificationCenter.default.addObserver( self, selector: #selector( self.methodtohandle ), name: .yourcustomeventname, object: nil )

当控制器不再时,不要忘记移除观察者needed/presented:

NotificationCenter.default.removeObserver(self, name: .yourcustomeventname, object: nil)

在你的单身人士 class 上你会调用 "post":

NotificationCenter.default.post(name: .yourcustomeventname, object: somedata)