2016-11-04 17 views
1

兼容在轉換從SWIFT 2.3至夫特3,收到上述用於下面的代碼行的錯誤:無不與預期參數類型選擇器

var contactButton: UIBarButtonItem {return self.CustomRightItem("icon-nav-nls-contact", target: self, action: nil)} 

的問題是在nil動作。我試過使用和空選擇器:#selector()和```#選擇器(零)都無濟於事。

我該如何處理Swift 3中的零操作?

+0

CustomRightItem看起來像是您的自定義實例方法,它創建UIBarButtonItem。也許你需要重寫你的函數來選擇一個'Selector?(可選擇的選擇器)而不是選擇器?或者,如您在自己的答案中顯示的那樣,傳入一個實際的選擇器。 –

+0

它看起來像UIBarButtonItem的Swift初始化器需要一個可選的選擇器,所以修改你的函數以接受'Selector?'應該可以工作。 –

回答

0

這顯然是佔位符碼以後的動作,所以用一個佔位符函數,其中的代碼最終會去,然後與需要調用選擇:#selector(functionName(_:))

你完整的代碼看起來就像這樣:

var contactButton: UIBarButtonItem {return self.CustomRightItem("icon-nav-nls-contact", target: self, action: #selector(contactAction(_:)))} 

func contactAction(_ sender: AnyObject) { 
    return 
} 
相關問題