簡體   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