我试图在Swift中做一些非常简单的事 - 实例化一个UIBarButtonItem:
let btnImg = UIImage(named: "imgName")
let btn = UIBarButtonItem(image: btnImg, style: .Plain, target: self, action: doSomthing)
此代码导致构建失败:
Missing argument for parameter 'landcapeImagePhone' in call
根据the docs,这两个功能都可用:
initWithImage:样式:目标:动作:
init(image image: UIImage?,
style style: UIBarButtonItemStyle,
target target: AnyObject?,
action action: Selector)
initWithImage:landscapeImagePhone:样式:目标:动作:
init(image image: UIImage?,
landscapeImagePhone landscapeImagePhone: UIImage?,
style style: UIBarButtonItemStyle,
target target: AnyObject?,
action action: Selector)
如果我实现第二个init,我会收到以下错误:
Extra argument 'landscapeImagePhone' in call
有谁知道我可以实现我想要实现的目标的方式?这是Swift / Xcode中的错误吗?我正在运行Xcode 6.1.1。
我做了一个干净的(Cmd + SHIFT + K)和一个构建文件夹干净(Cmd + alt + SHIFT + K)。
答案 0 :(得分:3)
如果doSomthing
是没有参数的函数,则实例化UIBarButtonItem
的正确方法应该是:
let btn = UIBarButtonItem(image: btnImg, style: .Plain, target: self, action: "doSomthing")
查看此帖子,了解有关swift中Selectors
的信息:
@selector() in Swift?