【问题标题】:"Missing argument for parameter 'style' in call" error in creating system UIBarButtonItem创建系统 UIBarButtonItem 时出现“调用中的参数 'style' 缺少参数”错误
【发布时间】:2014-10-23 05:31:37
【问题描述】:

我不明白为什么编译器在这个系统样式的 UIBarButtonItem 初始化程序中要求样式参数的参数——它首先没有那个参数。帮助?这是 Swift 的错误吗?

class ExpensesViewController: UIViewController {

    lazy var newExpenseBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: Selector("newExpenseBarButtonItemTapped:"))

    func newExpenseBarButtonItemTapped() {

    }

}

【问题讨论】:

  • 你有没有得到有效的答案?
  • @AaronBratcher 是的,见下文。

标签: ios iphone ipad cocoa-touch swift


【解决方案1】:

这将删除编译器错误消息:

class ExpensesViewController: UIViewController {

    lazy var newExpenseBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.UIBarButtonSystemItemAdd.value, 
                 target:self, action:Selector("newExpenseBarButtonItemTapped:"))

    func newExpenseBarButtonItemTapped() {

    }

}

.Add 不是有效值

【讨论】:

  • 您在UIBarButtonSystemItem.UIBarButtonSystemItemAdd 之后添加的.value 是什么?似乎无法让错误为我消失:(
  • 对我来说也失败了,当我尝试基于设置标题的初始化程序时,它给了我一个错误,我错过了风景图像参数。似乎完全混淆了。
【解决方案2】:

无需为动作添加 Selector 动词。

class ExpensesViewController: UIViewController {

lazy var newExpenseBarButtonItem = UIBarButtonItem( barButtonSystemItem: UIBarButtonSystemItem.Add,
                                                        target:self,
                                                        action:"newExpenseBarButtonItemTapped")


 func newExpenseBarButtonItemTapped() 
 {

 }

}

【讨论】:

    【解决方案3】:

    我可以通过将按钮设为隐式展开的可选按钮然后稍后对其进行初始化来解决此问题。

    【讨论】:

      【解决方案4】:

      如果你在类范围内使用self,你会得到很多奇怪的编译器消息。看来 swift 编译器还不成熟。以下代码适用于我在 Xcode 版本 6.1.1 (6A2008a) 上。

      class Foo {
          var playButton:UIBarButtonItem? = nil
      
          func initButtons(){
              self.playButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Play, target: self, action: Selector("doPlay:"))
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2019-11-25
        • 2021-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-15
        • 1970-01-01
        • 2016-01-01
        • 2012-10-19
        相关资源
        最近更新 更多