在不使用选择器添加观察者的情况下,可以使用以下方法来解决:
// 定义一个自定义通知名称
let myNotification = Notification.Name("MyNotification")
// 在需要的地方添加观察者
NotificationCenter.default.addObserver(self, selector: #selector(handleNotification), name: myNotification, object: nil)
// 处理通知的方法
@objc func handleNotification() {
// 处理通知
}
// 在适当的地方发送通知
NotificationCenter.default.post(name: myNotification, object: nil)
// 定义一个观察者闭包
var observer: (() -> Void)?
// 在需要的地方设置闭包
observer = {
// 处理观察者逻辑
}
// 在适当的地方调用闭包
observer?()
// 定义一个观察者协议
protocol ObserverDelegate: AnyObject {
func handleEvent()
}
// 在需要的地方设置代理
weak var delegate: ObserverDelegate?
// 在适当的地方调用代理方法
delegate?.handleEvent()
以上都是不使用选择器添加观察者的解决方法,你可以根据自己的需求选择最适合的方法来实现观察者模式。
下一篇:不使用选择自动填充