如何在Swift中的`Any`中访问`AnyHashable`类型?

时间:2016-10-05 02:06:50

标签: arrays swift swift3

我正在使用APAddressBook从用户手机获取地址簿。当我打印变量serializedContacts

时,它会生成以下用户对象
[[
    AnyHashable("name"): {
        compositeName = "Mary Jones";
        firstName = Mary;
        lastName = Jones;
    },
    AnyHashable("recordID"): 111, 
    AnyHashable("phones"): <__NSSingleObjectArrayI 0x17401c160>({
           number = "0411 111 111";
    })
], 
[
    AnyHashable("name"): {
        compositeName = "Jack Smith";
        firstName = Jack;
        lastName = Smith;
    }, 
    AnyHashable("recordID"): 112, 
    AnyHashable("phones"): <__NSSingleObjectArrayI 0x17401c190>({
        number = "0422 222 222";
    })
]]

我只需打印serializedContacts[0]即可访问单个联系人,但我如何才能访问compositeNamenumber等更精细的详细信息?

我尝试了serializedContacts[0].nameserializedContacts[0].phones,但收到了错误。

  

“Any”类型的值没有成员“name”。

1 个答案:

答案 0 :(得分:1)

您之前还应该将您尝试访问的属性转换为AnyHashable。在你的情况下,这是:

serializedContacts[0][AnyHashable("name")]