Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode Swift如何在具有4个输入的方法中使用Switch语句(发送方)_Xcode_Switch Statement_Case - Fatal编程技术网

Xcode Swift如何在具有4个输入的方法中使用Switch语句(发送方)

Xcode Swift如何在具有4个输入的方法中使用Switch语句(发送方),xcode,switch-statement,case,Xcode,Switch Statement,Case,我有个问题!这段代码在我的veiwController中运行良好。但是我想把它移到我的结构中,然后只调用一个函数!这个 @IBOutlet weak var billTextField: UITextField! @IBOutlet weak var zeroPctButton: UIButton! @IBOutlet weak var tenPctButton: UIButton! @IBOutlet weak var twentyPctButton: UIButton! @IBOutlet

我有个问题!这段代码在我的veiwController中运行良好。但是我想把它移到我的结构中,然后只调用一个函数!这个

@IBOutlet weak var billTextField: UITextField!
@IBOutlet weak var zeroPctButton: UIButton!
@IBOutlet weak var tenPctButton: UIButton!
@IBOutlet weak var twentyPctButton: UIButton!
@IBOutlet weak var splitNumberLabel: UILabel!


@IBAction func tipChanged(_ sender: UIButton) {
   
    
    
    billTextField.becomeFirstResponder()
    
    switch sender {
    case zeroPctButton:
        zeroPctButton.isSelected = true
        tenPctButton.isSelected = false
        twentyPctButton.isSelected = false
        billTextField.endEditing(true)
    case twentyPctButton:
        tenPctButton.isSelected = false
        zeroPctButton.isSelected = false
        twentyPctButton.isSelected = true
        billTextField.endEditing(true)
    case tenPctButton:
        twentyPctButton.isSelected = false
        zeroPctButton.isSelected = false
        tenPctButton.isSelected = true
        billTextField.endEditing(true)
    default:
        print("error")
    }
在我尝试用4个输入创建我的方法后,它不起作用

    struct Switch {



    func switchButton(zero: UIButton, ten: UIButton, twenty: UIButton, bill: UITextField)  {
        
        switch UIButton() {
        case zero :
        zero.isSelected = true
        ten.isSelected = false
        twenty.isSelected = false
        bill.endEditing(true)
        
        case twenty :
      ten.isSelected = false
        zero.isSelected = false
       twenty.isSelected = true
     bill.endEditing(true)
        case ten:
        twenty.isSelected = false
        zero.isSelected = false
        ten.isSelected = true
        bill.endEditing(true)
    default: print("Error")
例如,当我将开关Uibutton更改为零时,它与这一个按钮一起工作

    struct Switch {



    func switchButton(zero: UIButton, ten: UIButton, twenty: UIButton, bill: UITextField)  {
        
        switch zero {
        case zero :
        zero.isSelected = true
        ten.isSelected = false
        twenty.isSelected = false
        bill.endEditing(true)
        
        case twenty :
      ten.isSelected = false
        zero.isSelected = false
       twenty.isSelected = true
     bill.endEditing(true)
        case ten:
        twenty.isSelected = false
        zero.isSelected = false
        ten.isSelected = true
        bill.endEditing(true)
    default: print("Error")
我尝试使用嵌套的func,但没有成功我还创建了另一个带有4个输入的结构,我将其添加到我的主结构的代码中。
我尝试了太多的事情,我就是停不下来!请帮我理解

您的原始工作代码声明了如下函数:

@IBAction func tipChanged(_ sender: UIButton) {
它有以下特点:

这是一种顶级函数类型的方法

该类型是NSObject子类

该方法标记为@IBAction或@objc

该方法有一个参数,sender,键入为Any

如果您的目标是让界面中的按钮在点击时调用此方法,则这是一种Objective-C/Cocoa机制。所以所有这些都必须是真实的


此方法不能是结构的类型;在这里主持节目的Objective-C/Cocoa根本看不到Swift结构。并且该方法必须使用@IBAction或@objc显式地公开给Objective-C。而且该方法必须有正确的签名:没有参数,或者一个参数通常被键入Any或UIButton或类似类型,因为这是该机制可以调用的格式。

因此,如果我想创建将与@iAction一起使用的东西,我需要有正确的签名:没有参数,或者一个参数,通常键入为Any或UIButton或类似的,因为这是该机制可以调用的格式?所以我只能用一个按钮?我没这么说。您可以在同一个方法中调用四个不同的按钮,没有问题,就像您在开始时所做的那样。我不太明白现在的问题是什么;似乎你有工作代码,你把它扔掉了。但这有什么问题?你的代码很正常。是否只是想将大部分代码移动到一个helper函数中?在这种情况下,从工作方法调用helper函数。是的,我的代码正在工作,但我创建了另一个文件。我将把所有函数放在struct中,只调用它们。我创建switchButton方法只是为了在我的IBACtion func from struct中调用它。但是我不明白为什么它不能处理4个输入。好吧,你这么说,但是你没有显示任何代码,你的tipChanged方法调用你的switchButton方法,所以我不知道你在尝试什么。