Swift 2中的不可变值

时间:2015-09-04 15:25:43

标签: swift watchkit xcode7-beta6

我有一个项目,其中此代码不会给我带来任何问题,但在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"])
}

1 个答案:

答案 0 :(得分:3)

正如比尔兹利先生所说,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键'部分密钥与您要分配给msg的值配对。