如何从swift 3中的@IBAction函数返回一个Int变量?
我想返回我在我的Xcode项目中所做的值。 Int值是在步进器的@IBAction函数中进行的。如何从swift 3中的@IBAction函数返回一个Int变量?
@IBAction func stepper(_ sender: UIStepper) -> Int {
let Number: Int = Int(sender.value)
return Number
print(Number)
该系统给我这个错误: “方法声明@IBAction必须返回 '无效'(not'Int')”。
@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
方法中的代码块insid e didSet
观察员将会触发并且stepperValue
的当前值可以在didSet
观察者代码块内进行访问,以用于您想要的任何逻辑。或者,您可以简单地将整个didSet
观察程序块代码放入IBAction
方法stepper
的内部。
或者,您可以编写另一种方法func modifyMyButton(_ stepperval: Int)
将您的逻辑放在那里,并从IBAction
方法中调用此方法。
@IBAction func
是基于系统的功能,基于用户交互的事件触发。他们不会回报你任何东西。如果你愿意,他们会为你调用函数。您需要描述您尝试实施的场景。
这应该是一个评论,而不是一个答案。 – Annjawn
这并没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方留言。 - [来自评论](/ review/low-quality-posts/16986081) –
没有理由这样做,因为您不直接调用步进器,系统正在为您调用它。那个回报值应该在哪里结束? – Connor
@IBAction这些是事件。他们不应该返回任何结果 –
在类级别为View控制器类使用'var',比如'var stepperValue:Number?',然后在'@ IBAction'方法内使用该变量'stepperValue'。 'IBAction's不能返回值。 – Annjawn