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

时间:2017-08-09 19:52:12

标签: swift ibaction

我正在尝试返回我在Xcode项目中创建的值。 Int值在步进器的@IBAction函数中生成。

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

系统给我这个错误:"声明@IBAction的方法必须返回' Void' (未'诠释')"

2 个答案:

答案 0 :(得分:2)

@IBAction是一个内置属性,用于触发根据用户的交互执行某些任务的方法,并且不能返回值/对象。您可以做的是触发其他操作,或初始化操作方法中的其他全局/局部变量。

错误 - Methods declared @IBAction must return 'Void' (not'Int')只是意味着IBAction方法无法返回任何内容,并且必须返回void而不是任何内容。

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

在视图控制器的类级别声明变量

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

然后是@IBAction -

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

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

或者,你可以简单地将整个didSet观察者块代码放在IBAction方法stepper中。

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

答案 1 :(得分:1)

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