2016-04-19 12 views
0

私はメッセージを受信するために時計接続を使用しています(objectiveCで生成された辞書)。 呼び出されたデリゲート関数(swift)は、受け取った辞書を適切に解釈したくありません。objectForKeyに到達できません - [文字列:AnyObject]を辞書として

私のdictにObjectForKeyが見つかりません。理由は何ですか? おかげ

func session(session: WCSession, didReceiveMessage message: [String : AnyObject]) { 
     print("\nWC watch:\n Did receive didReceiveMessage: \(message)") 
     var messageDict = message as Dictionary<String, AnyObject> //here I wanted to cast to Dictionary 
     let newState = messageDict.objectForKey(WatchManagerMessageMaskStateKey) //but the messageDict does not know objectForKey 
} 

答えて

2

[String : AnyObject]Dictionary<String, AnyObject>はまったく同じことのための2つの表記法です。

objectForKeyは、NSDictionaryに属し、Swiftネイティブタイプのキーサブスクリプション用です。
結果をより具体的なものにキャストすることができます。

func session(session: WCSession, didReceiveMessage message: [String : AnyObject]) { 
    print("\nWC watch:\n Did receive didReceiveMessage: \(message)") 
    let newState = message[WatchManagerMessageMaskStateKey] 
    ... 
} 
関連する問題