ios - 快速检查 viewDidLoad 上的 uiswitch 状态

标签 ios swift uiswitch viewdidload unwrap

我有 uiswitch 的问题。我需要知道应用程序第一次运行时 uiswitch 是打开还是关闭。 我试过这段代码:

     @IBOutlet  weak var switch1: UISwitch!


      override func viewDidLoad() {
      super.viewDidLoad()
     if switch1.on {
        print("Switch is on")

    }
    else {


       print("Switch is off")
                }
    }

但每次我收到这个错误:

  fatal error: unexpectedly found nil while unwrapping an Optional value

如何在不出现该错误的情况下打开 uiswitch?

最佳答案

你必须调用 super。所有 IBOutlets 都是隐式解包可选的。在调用 awakeFronNib 之前,它们都是 nil。如果您在此之前尝试访问其中之一,则会出现异常。
还要验证开关的 socket 是否已连接。

 override func viewDidLoad() {
  super.viewDidLoad()
     if switch1.on {
        print("Switch is on")
    }
    else {
         print("Switch is off"
          }
    }

关于ios - 快速检查 viewDidLoad 上的 uiswitch 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35575144/

相关文章:

javascript - iPad 通过 CSS 禁用链接点击

iOS:在 swift 1.2 中写入 Realm

ios - 在不使用 alpha 的情况下使用 UISegmentedControl 在 View ios 之间切换?

ios - viewWithTag:reloadData 后返回 nil

ios - 如何从 CustomCell 重置 tableview 中的所有开关

ios - 如何在 UILabel 上为下划线创建属性?

image - iOS @2x 拉长图像

swift - Swift 中 Unresolved 标识符错误?

ios - 将来自 JSON 字典字典的 http 请求中的数据转换为 Swift 中的一个字典数组

iphone - 在 "off"状态改变 UISwitch 的颜色