我有一个默认参数值如下的函数:
@objc func myFunc(theFlag: Bool = false) {
}
通知中心调用该函数
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上测试
发布于 2018-09-11 07:01:03
正确的方法是
@objc func myFunc(_ notification:Notification) // OR NSNotification also
不要期望NotificationCenter.default
为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#>)
https://stackoverflow.com/questions/52266551
复制相似问题