我正在尝试返回我在Xcode项目中创建的值。 Int值在步进器的@IBAction函数中生成。
@IBAction func stepper(_ sender: UIStepper) -> Int {
let Number: Int = Int(sender.value)
return Number
print(Number)
系统给我这个错误:"声明@IBAction的方法必须返回' Void' (未'诠释')"
答案 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
是基于系统的函数,它们基于用户交互在事件上触发。他们不会给你任何回报。如果你愿意,他们会为你调用函数。您需要描述您要实施的场景。