UISwitch 在值更改 IOS Swift 时崩溃

Posted

技术标签:

【中文标题】UISwitch 在值更改 IOS Swift 时崩溃【英文标题】:UISwitch crash on value change IOS Swift 【发布时间】:2018-06-18 06:56:06 【问题描述】:

我正在尝试设置一个简单的 UISwitch,它只是复制一个布尔变量中的布尔值(关闭或打开)。 问题是当我运行我的应用程序时,每次我更改开关值时,它都会崩溃并出现以下错误(在图片中)。我附上我正在尝试使用的代码:

import UIKit

class TypeOfDiabetesVC: UIViewController 


    @IBOutlet weak var insulinDSwitch: UISwitch!

    var insulinsSwitchState : Bool = true

// viewDidLoad and Memory warning funcs etc...

@IBAction func insulinDSwitch(_ sender: UISwitch) 
        if (sender.isOn == true) 
            insulinDSwitch.setOn(true, animated: true)
         else 
            insulinDSwitch.setOn(false, animated: true)
        
        insulinsSwitchState = sender.isOn
    

应用程序构建成功,但是当我点击开关以打开或关闭它时,应用程序崩溃:

link to the image

【问题讨论】:

确保UISwitch IBAction 连接正确。 从情节提要中删除动作并重新附加。故事板试图调用“InsulinDSwitch”,但您的功能是“insulinDSwitch” 【参考方案1】:

您在TypeOfDiabetesVC 视图控制器中的方法名为insulinDSwitch,但情节提要试图调用InsulinDSwitch。大小写不同导致应用崩溃。

可能的解决方案:从情节提要中删除动作并再次将其连接到正确的方法。

【讨论】:

谢谢大家,我不得不承认这是一个愚蠢的错误使用错误的出口名称。 欢迎@FabioMagarelli,这发生在我们最好的人身上:D【参考方案2】:

此崩溃是因为您尚未将 IBAction 与情节提要连接,请重做。

【讨论】:

【参考方案3】:

您的插座有问题,请检查您使用UISwitch 附加的操作的插座。

【讨论】:

以上是关于UISwitch 在值更改 IOS Swift 时崩溃的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS7 上更改 UISwitch 的 onTintColor?

UISwitch的“On”状态

iOS开发技巧 - 使用和定制开关控件(UISwitch)

滚动时 TableViewCell 中的 Swift 3 UISwitch 丢失状态

更改 UISwitch 时如何隐藏部分

合并 - 仅在值更改时更新