2016-11-04 59 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 
} 
相关问题