调用返回字符串的函数时,获取swift中的错误
错误在以下行中:调用返回字符串的函数时,获取swift中的错误,swift,Swift,错误在以下行中: import UIKit class ViewController: UIViewController { @IBOutlet weak var swipeLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() swipeLabel.text = "0" let leftSwipe = UISwipeGestureRecognizer
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var swipeLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
swipeLabel.text = "0"
let leftSwipe = UISwipeGestureRecognizer(target: self, action: #selector (ViewController.swipeReceive(sender:)))
let rightSwipe = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.swipeReceive(sender:)))
leftSwipe.direction = .left
rightSwipe.direction = .right
view.addGestureRecognizer(leftSwipe)
view.addGestureRecognizer(rightSwipe)
let disPlaynumon = swipeReceive(sender: UISwipeGestureRecognizer) // Error here
swipeLabel.text = disPlaynumon
}
func swipeReceive(sender:UISwipeGestureRecognizer) -> String
{
if(sender.direction == .left)
{
var disPlaynum = 0
disPlaynum = disPlaynum-1
return String(disPlaynum)
}
if(sender.direction == .right)
{
var disPlaynum = 0
disPlaynum = disPlaynum+1
return String(disPlaynum)
}
return String("not right or left swiped")
}
}
错误是:
无法将类型为“UISwipegestureRecognitor.type”的值转换为预期的参数类型“UISwipegestureRecognitor”
这个程序应该允许用户向右滑动,然后标签显示为正1,当向左时,显示为负1,但是当我调用函数swipeReceive试图获取标签上显示的字符串时,我得到了错误。是的,你不能这样做。您正在尝试使用UISweepGestureRecognitor?调用此方法?。该方法应为对象,而您正在传递该类。在视图中滑动时,将自动调用该方法。因此,您可以做的是:
let disPlaynumon = swipeReceive(sender: UISwipeGestureRecognizer)
类ViewController:UIViewController{
@IBVAR弱开关标签:UILabel
import UIKit
当
发送方.direction
不是左或右时,它不知道返回什么。您还应该捕获以返回该大小写。如何捕获以返回?只需在最后一个if语句后添加一个返回字符串(“”),以捕获其他所有内容。最简单的方法是返回默认数字,例如“0”以防它既不左也不右。我已经编辑了它,但错误仍然存在
override func viewDidLoad() {
super.viewDidLoad()
swipeLabel.text = "0"
let leftSwipe = UISwipeGestureRecognizer(target: self, action: #selector (ViewController.swipeReceive(sender:)))
let rightSwipe = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.swipeReceive(sender:)))
leftSwipe.direction = .left
rightSwipe.direction = .right
view.addGestureRecognizer(leftSwipe)
view.addGestureRecognizer(rightSwipe)
//REMOVE THESE TWO FROM HERE
// let disPlaynumon = swipeReceive(sender: UISwipeGestureRecognizer) // Error here
//swipeLabel.text = disPlaynumon
}
func swipeReceive(sender:UISwipeGestureRecognizer){
var displayNum = 0
if(sender.direction == .left){
displayNum = displayNum - 1
}
if(sender.direction == .right){
displayNum = displayNum + 1
}
swipeLabel.text = "\(displayNum)"
}
}