2016-02-23 3 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

В вашем коде есть ошибка. См. Строку «print» в вашем случае. –

+2

@HammadRaza: Это будет ошибка компиляции, а не время выполнения. OP должен быть вставлен неправильно здесь – iAnurag

ответ

1

Возможно, ваш коммутатор1 не подключен к UISwitch в раскадровке или xib.

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

Вы должны назвать супер. Все IBOutlets неявно разворачиваются необязательно. Это nil до awakeFronNib. Если вы попытаетесь получить доступ к одному из них до этого, вы получите исключение.
Также убедитесь, что розетка к коммутатору подключена.

override func viewDidLoad() { 
    super.viewDidLoad() 
    if switch1.on { 
     print("Switch is on") 
    } 
    else { 
     print("Switch is off" 
      } 
    } 
Смежные вопросы