gpt4 book ai didi

swift - Swift中NSNotification的疑惑

转载 作者:搜寻专家 更新时间:2023-11-01 06:49:14 24 4
gpt4 key购买 nike

我正在开发我的第一个 iOS 应用程序,但不了解通知。

我正在发送通知:

DefaultCenter.postNotificationName("evRodadaAtualizei", object: nil)

在另一个类中,我有一个观察这个通知的方法:

DefaultCenter.addObserver(self, selector: Selector("Atualizar"), 
name: "evRodadaAtualizei", object: nil)

我的问题是:

此观察者将监听任何具有该名称的通知?宣布通知的类(class)并不重要?换句话说,是否可以有一个地方放置所有通知(如通知库),因为它们都独立于类?

如果我没有理解错的话,这与 C# 或 VB.Net 中事件属于类的事件概念非常不同。

最佳答案

Cocoa 中的通知在类间工作。在何处创建或观察通知并不重要。

但是,请注意 postNotificationName 方法中的 object 参数。如果设置,这应该对应于发布通知的对象。如果您只想观察给定对象的通知,请在添加观察者时将对象参数设置为该对象。例如

class MyObjectClass {

func doSomething() {
// Do something and then notify

DefaultCenter.postNotificationName("evRodadaAtualizei", object: self)
}
}

class MyObserverClass {

func startProcess() {

var myObject = MyObjectClass()

DefaultCenter.addObserver(self, selector: Selector("Atualizar"), name: "evRodadaAtualizei", object: myObject)
}

func Atualizar() {

}

}

关于swift - Swift中NSNotification的疑惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24524503/

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