我如何从 swift 3 中的 @IBAction 函数 return 一个 Int 变量?

How do I return an Int variable from an @IBAction function in swift 3?

我正在尝试 return 我在 Xcode 项目中创造的价值。 Int 值是在步进器的@IBAction 函数中生成的。

@IBAction func stepper(_ sender: UIStepper) -> Int {
    let Number: Int = Int(sender.value)
    return Number
print(Number)

系统给我这个错误:"Methods declared @IBAction must return 'Void' (not'Int')"。

@IBAction func 是基于系统的函数,它们在基于用户交互的事件上触发。他们不会 return 你什么。如果你愿意,他们会为你调用函数。您需要描述您要实现的场景。

@IBAction 是一个内置属性,用于触发方法,这些方法将根据用户的交互执行某些任务,而不能 return values/objects。您可以做的是触发其他操作,或在操作方法中初始化其他 global/local 变量。

错误 - Methods declared @IBAction must return 'Void' (not'Int') 只是意味着 IBAction 方法不能 return 任何东西并且必须 return void 也就是什么都没有。

根据您对 UIButton 使用步进器值的评论,您可以这样做-

在视图控制器的 class 级别声明一个变量

var stepperValue: Int = 0 {
   didSet{
      // use stepperValue with your UIButton as you want
   }
}

然后是@IBAction-

@IBAction func stepper(_ sender: UIStepper){
    stepperValue = Int(sender.value)
}

每次在 @IBAction 方法中设置 stepperValue 时,didSet 观察器中的代码块将触发,并且可以在内部访问 stepperValue 的当前值didSet 观察者代码块,用于您想要的任何逻辑。

或者,您可以简单地将整个 didSet observer 块代码放在 IBAction 方法中 stepper.

或者,您可以编写另一个方法 func modifyMyButton(_ stepperval: Int) 将您的逻辑放在那里并从 IBAction 方法内部调用此方法。