Swift 2 中的不可变值
Immutable value in Swift 2
我有一个项目,其中这段代码没有给我带来问题,但在 Xcode 7.0 beta 6 中它跳过了警告,我找不到修复它的方法
func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {
print("Mensaje recibido:\(message)")
if let msg = message as? String{ //Error here
// do something with the uname
}
replyHandler(["reply" : "OK"])
}
正如 Beardsley 先生所说,指令 if let msg = message as? String
将不起作用,因为您正试图将字典 message
转换为可选字符串。
这应该可以完成工作:
func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {
print("Mensaje recibido:\(message)")
if let msg = message["/* Whatever key you want to select */"] as? String {
// do something with the uname
}
replyHandler(["reply" : "OK"])
}
将 'Whatever key you want to select' 部分替换为与您要分配给 msg 的值配对的密钥。
我有一个项目,其中这段代码没有给我带来问题,但在 Xcode 7.0 beta 6 中它跳过了警告,我找不到修复它的方法
func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {
print("Mensaje recibido:\(message)")
if let msg = message as? String{ //Error here
// do something with the uname
}
replyHandler(["reply" : "OK"])
}
正如 Beardsley 先生所说,指令 if let msg = message as? String
将不起作用,因为您正试图将字典 message
转换为可选字符串。
这应该可以完成工作:
func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {
print("Mensaje recibido:\(message)")
if let msg = message["/* Whatever key you want to select */"] as? String {
// do something with the uname
}
replyHandler(["reply" : "OK"])
}
将 'Whatever key you want to select' 部分替换为与您要分配给 msg 的值配对的密钥。