gpt4 book ai didi

objective-c - 关于 NSNotification Center 的 2 个速记

转载 作者:行者123 更新时间:2023-12-04 19:59:03 25 4
gpt4 key购买 nike

在我找到的所有教程或示例中,它们在选择器名称 (getCurrentData:) 后显示一个冒号,如下所示:


[[NSNotificationCenter 默认中心]
添加观察者: self
选择器:@选择器(getCurrentData:)
名称:@“mapsReceived”
对象:无];

由于示例中这个冒号后没有任何内容,我假设指定的方法不接受任何参数。我的也没有,但是当我使用上述语法时,我的应用程序崩溃并显示 unrecognized selector sent to instance 我删除了冒号,它起作用了。那么为什么所有示例都显示冒号?

其次,如果我确实使用了需要参数的选择器,我该怎么做?如果我这样做:

[[NSNotificationCenter defaultCenter]
添加观察者: self
selector:@selector(createButtons:@"十盛大";)
名称:@“mapsReceived”
对象:无];

它甚至不会编译;在删除文本字符串和冒号之前,我会遇到很多错误。然而,当在 NSNotification 之外使用它时,我可以使用字符串调用这个方法。有没有办法在这里做我想做的事?

最佳答案

首先,大多数示例都假定您将通知传递给方法。例如:

- (void)respondToNotification:(NSNotification *);

这将表示为:

@selector(respondToNotification:)

如果你删除这个参数,它将是

@selector(respondToNotification)

至于第二项,您不能以那种方式指定参数。您需要以接收通知作为参数的方式构建您的方法,然后您可以检查通知并调用另一个方法来执行您需要的任何操作。

关于objective-c - 关于 NSNotification Center 的 2 个速记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7161389/

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