调用返回字符串的函数时,获取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)"
}


}