gpt4 book ai didi

object - 一个类在它实例化的对象中监听事件的最佳方式是什么? ( swift )

转载 作者:行者123 更新时间:2023-11-28 07:13:22 24 4
gpt4 key购买 nike

如果我有一个 class A 和一个 class B,我如何在 class A 中监听实例中发生的事件B

class A {
init() {
var b = B()
// somehow listen for events that happen in b then call somethingHappened()
}

func somethingHappened() {
//
}
}

class B {
init() {
doSomething()
}

func doSomething() {
// dispatch event
}
}

我想这样做的方式只是使用 NSNotificationCenter 来广播事件,但我不确定这是否是正确的方式。似乎很容易。是否有其他方法可以监听 B 类实例中的事件?

最佳答案

NotificationCenter 绝对可以用于此类事情。但是如果你只有一个实例需要监听事件,你也可以使用在框架中也很常见的委托(delegate)模式。

// Create a protocol
protocol DoSomethingDelegate {
func doneSomething()
}

// Add this to class B
var theDelegate: DoSomethingDelegate?
// somewhere in doSomething()
theDelegate?.domeSomething()

// in class A after creating B
b.theDelegate = self // or add this to the init method. However you'd like to do this.

Adapting Design Patterns section文档中的内容也可能对您有所帮助。

关于object - 一个类在它实例化的对象中监听事件的最佳方式是什么? ( swift ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27520723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com