声明的方法必须 return void (not float)
Methods declared must return void (not float)
我正在尝试使用标准 UIButton 函数 return 两个浮点值,宽度和高度。我添加了“-> Float”,但遇到了这个错误。如果我将其更改为“-> Void”,那么我将在 void 函数中留下意外的非 void return 值。我在这里做错了什么?
@IBOutlet weak var buttonValue: UIButton!
@IBAction func smallB(_ sender: Any) -> Float {
var inital = 2
let divisble = 2
var width: Float
var height: Float
if inital % divisble == 0
{
width = 0.14
height = 0.07
buttonValue.titleLabel?.text = "Big"
inital + 1
}
else
{
width = 0.28
height = 0.14
buttonValue.titleLabel?.text = "Small"
inital + 1
}
return width
return height
}
IBAction 函数可以 invoked/called 通过用户在任何 UIElements(如按钮、开关、段控制器)上的交互。它的响应(return 类型)返回到用户界面元素,如果您使用 IBAction 并将该操作附加到您的 Interface Builder
,您可能无法在代码中获得浮点值
从 IBAction
方法中删除 return 类型,如果您已将方法与 Interface Builder 按钮元素连接起来。如果您的操作是从 IBOutlet 元素生成的,那么 return 值对您来说毫无意义。
@IBAction func smallB(_ sender: Any) {
// action contents
// also remove following return statements
// return width
// return height
}
但是如果你真的想 return 高度和宽度(两个浮点值)作为对这个函数调用的响应,那么你应该以编程方式调用它,并像这样更改函数声明:
func smallBTest(_ sender: Any) -> CGSize {
// action contents
//Update your return statement like
return CGSize(width: width, height: height)
}
let size: CGSize = smallBTest(<button instance > buttonValue)
print("Size: Width = \(size.width) -- Height = \(size.Height)")
// or you can try this as well
@IBAction func smallB(_ sender: Any) {
let size: CGSize = smallBTest(sender)
print("Size: Width = \(size.width) -- Height = \(size.Height)")
}
您不能 return 来自 IBAction 方法的值。所以把你的方法改成
@IBAction func smallB(_ sender: Any) {
// your logic
}
并删除 return width
、return height
。
如果要使用宽度和高度,请将它们设为全局变量。
我正在尝试使用标准 UIButton 函数 return 两个浮点值,宽度和高度。我添加了“-> Float”,但遇到了这个错误。如果我将其更改为“-> Void”,那么我将在 void 函数中留下意外的非 void return 值。我在这里做错了什么?
@IBOutlet weak var buttonValue: UIButton!
@IBAction func smallB(_ sender: Any) -> Float {
var inital = 2
let divisble = 2
var width: Float
var height: Float
if inital % divisble == 0
{
width = 0.14
height = 0.07
buttonValue.titleLabel?.text = "Big"
inital + 1
}
else
{
width = 0.28
height = 0.14
buttonValue.titleLabel?.text = "Small"
inital + 1
}
return width
return height
}
IBAction 函数可以 invoked/called 通过用户在任何 UIElements(如按钮、开关、段控制器)上的交互。它的响应(return 类型)返回到用户界面元素,如果您使用 IBAction 并将该操作附加到您的 Interface Builder
,您可能无法在代码中获得浮点值从 IBAction
方法中删除 return 类型,如果您已将方法与 Interface Builder 按钮元素连接起来。如果您的操作是从 IBOutlet 元素生成的,那么 return 值对您来说毫无意义。
@IBAction func smallB(_ sender: Any) {
// action contents
// also remove following return statements
// return width
// return height
}
但是如果你真的想 return 高度和宽度(两个浮点值)作为对这个函数调用的响应,那么你应该以编程方式调用它,并像这样更改函数声明:
func smallBTest(_ sender: Any) -> CGSize {
// action contents
//Update your return statement like
return CGSize(width: width, height: height)
}
let size: CGSize = smallBTest(<button instance > buttonValue)
print("Size: Width = \(size.width) -- Height = \(size.Height)")
// or you can try this as well
@IBAction func smallB(_ sender: Any) {
let size: CGSize = smallBTest(sender)
print("Size: Width = \(size.width) -- Height = \(size.Height)")
}
您不能 return 来自 IBAction 方法的值。所以把你的方法改成
@IBAction func smallB(_ sender: Any) {
// your logic
}
并删除 return width
、return height
。
如果要使用宽度和高度,请将它们设为全局变量。