繁体   English   中英

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

[英]Swift: Default function parameter value via NotificationCenter

我有一个具有默认参数值的函数,如下所示:

@objc func myFunc(theFlag: Bool = false) {

}

通过通知中心调用此功能

NotificationCenter.default.addObserver(self, selector: #selector(myFunc), name: MyNotificationName, object: nil)

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

我假设theFlag的默认值设置为“ false”,并且它在大多数设备上都能正常工作。 但是,我发现在32位设备上,将Flag设置为“ true”。

我想知道这是否不是通过通知中心调用具有默认值的函数的正确方法。 有官方的方式吗?

我正在Swift 4.1,Xcode 9.4.1上进行测试

正确的方法是

@objc func myFunc(_ notification:Notification) // OR NSNotification also

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

NotificationCenter.default.addObserver(self, selector: #selector(myFunc), name: MyNotificationName, object: nil)

要么

NotificationCenter.default.addObserver(self, selector: #selector(myFunc(_:)), name: MyNotificationName, object: nil)

//

如果要发送值,则将其插入object / userInfo

NotificationCenter.default.post(name:MyNotificationName, object:<#Here#>, userInfo:<#OrHere#>)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM