致命错误:展开值时出现swift 2.3
我正在尝试使用WCsession methode将保存的字符串发送到apple watch。但是当我这样做时,我在swift 2.3中得到一个错误:致命错误:在展开可选值时意外地发现了nil致命错误:展开值时出现swift 2.3,swift,wcsession,Swift,Wcsession,我正在尝试使用WCsession methode将保存的字符串发送到apple watch。但是当我这样做时,我在swift 2.3中得到一个错误:致命错误:在展开可选值时意外地发现了nil func Reloadip() { let ip = nsdefauts.object(forKey: saved) let requestValues = ["send" : "A" , "IP" : ip as! String ] print(requestValues
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!字符串行”中。如何修复此错误
关于Quinn,您应该使用更安全的代码
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")
}
}
把它拿走!从“as!String”开始,这是正确的方法,但对于类似的内容,我更喜欢使用保护而不是if。@overactor可能保护更具可读性;我在回答中替换了它。