首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Swift:通过NotificationCenter默认函数参数值

Swift:通过NotificationCenter默认函数参数值
EN

Stack Overflow用户
提问于 2018-09-11 06:58:46
回答 1查看 202关注 0票数 1

我有一个默认参数值如下的函数:

代码语言:javascript
复制
@objc func myFunc(theFlag: Bool = false) {

}

通知中心调用该函数

代码语言:javascript
复制
NotificationCenter.default.addObserver(self, selector: #selector(myFunc), name: MyNotificationName, object: nil)

当发布MyNotificationName时,通过通知中心调用myFunc。

我假设theFlag的默认值设置为"false“,并且它在大多数设备上的工作方式与我预期的一样。然而,我发现theFlag在32位设备上设置为"true“。

我想知道这是否是通过通知中心调用带有默认值的函数的正确方式。有什么官方的方式这样做吗?

我在Swift 4.1,Xcode 9.4.1上测试

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-11 07:01:03

正确的方法是

代码语言:javascript
复制
@objc func myFunc(_ notification:Notification) // OR NSNotification also

不要期望NotificationCenter.defaulttheFlag: Bool = false设置一个值,

代码语言:javascript
复制
NotificationCenter.default.addObserver(self, selector: #selector(myFunc), name: MyNotificationName, object: nil)

代码语言:javascript
复制
NotificationCenter.default.addObserver(self, selector: #selector(myFunc(_:)), name: MyNotificationName, object: nil)

//

如果您想发送一个值,则将其插入到object / userInfo

代码语言:javascript
复制
NotificationCenter.default.post(name:MyNotificationName, object:<#Here#>, userInfo:<#OrHere#>)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52266551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档