2016-02-23 67 views
0

我有一個uiswitch問題。我需要知道當應用第一次運行時uiswitch是打開還是關閉。 我試圖用這個代碼:快速檢查uiswitch狀態viewDidLoad

 @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沒有得到這個錯誤?

+4

驗證您的IBOutlet的連接,它可能被破壞。 – Moritz

+1

您的代碼中存在錯誤。請參閱其他情況下的「打印」行。 –

+2

@HammadRaza:這將是一個編譯錯誤,而不是運行時。 OP必須在這裏粘貼錯誤 – iAnurag

回答

1

可能是您的switch1沒有連接到故事板或xib中的UISwitch。

if let switch = switch1 { 
    if switch.on { 
    print("switch is on") 
    } else { 
    print("switch is off") 
    } 
} else { 
    println("Where's the switch") 
} 
+0

這解決了我的問題讓switch = switch1,謝謝 – Swift1

1

您必須致電super。所有IBOutlets都是隱式解包的可選項。 nil直到awakeFronNib被調用。如果您在此之前嘗試訪問其中的一個,則會發生異常。
同時確認連接到交換機的插座。

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