2016-06-17 3 views
-1

Я пытаюсь отправить сохраненную строку в яблочные часы с помощью метода WCsession. Но когда я делаю это, я получаю сообщение об ошибке в swift 2.3: фатальная ошибка: неожиданно найден nil при распаковке дополнительного значения !!Неустранимая ошибка: swift 2.3 при разворачивающемся значении

func Reloadip() { 


    let ip = nsdefauts.object(forKey: saved) 


    let requestValues = ["send" : "A" , "IP" : ip as! String ] 
    print(requestValues) 

    if(WCSession.isSupported()){ 
     session!.sendMessage(requestValues, replyHandler: nil, errorHandler: nil) 
     print("sended ip") 
    } 

} 

ошибка сделана в строке «ip as! String», как я могу исправить это. ?

рассматривает Quinn

+0

просто удалить! от «as! String» –

ответ

2

следует использовать более безопасный код вместо

func Reloadip() { 

    guard let ip = nsdefauts.objectForKey(saved) as? String else { 
     print("there is no saved ip") 
     return 
    } 

    let requestValues = ["send" : "A" , "IP" : ip] 
    print(requestValues) 

    if(WCSession.isSupported()){ 
     session?.sendMessage(requestValues, replyHandler: nil, errorHandler: nil) 
     print("sended ip") 
    } 
} 
+0

Это правильный подход, но я бы предпочел охранять if для чего-то подобного. – overactor

+0

@overactor, вероятно, защищает читаемость; Я заменил его в своем ответе. –

Смежные вопросы