如何解析didReceiveUserInfo userInfo参数?一个__NSSingleObjectArrayI

时间:2017-01-20 22:36:56

标签: ios swift

我试图解析userInfo变量:

func session(_ session: WCSession, didReceiveUserInfo userInfo: [String : Any] = [:]) {

如果我print(userInfo)我明白了:

["session": <__NSSingleObjectArrayI 0x608000011220>(
{
    created = "2017-01-20 22:13:45 +0000";
    device = "watchOS";
    id = 8;
    synced = 0;
    "person_id" = 17;
}
)
]

如何实际解析userInfo以便获取个别属性?我试图将此对象转换为NSDictionary但失败了。

编辑:

我试图转换&#34; session&#34;像这样的NSDictionary:

if let loggedSession = userInfo["session"] as? NSDictionary {

然而,这失败了。所以我的问题是访问&#34; session&#34;的数据。我希望把它转换成字典?

感谢。

1 个答案:

答案 0 :(得分:2)

看到你的输出,键"session"的值是NSArray,包含一个NSDictionary的单个对象,所以你可能需要从数组中检索一个元素:

if let sessions = userInfo["session"] as? [[String: Any]] {
    //You may need to retrieve one element from the array
    let sessionInfo = sessions[0]
    //Use `sessionInfo` as [String: Any]
    print(sessionInfo["created"]) //->Optional(2017-01-20 22:13:45 +0000)
    //...
}