1

成功登录后,我想获取特定属性的值。是否可以在不遍历每个属性的情况下做到这一点?我知道我不能下标,但还有其他方法吗?

因此,在下面的示例中,我想要的是用户电子邮件的值。理想情况下,我想说let email = userAttributes["email"]但这种类型不允许订阅。

user?.getDetails().continueOnSuccessWith(block: { (task) -> Any? in
    let userAttributes = task.result?.userAttributes

    for attribute in userAttributes! {
        print(attribute.name!)
        print(attribute.value!)
    }
    return nil
})
4

1 回答 1

0

看到它AWSCognitoIdentityProviderAttributeType同时包含名称和值,我们可以轻松地映射该数据以制作可以通过键值访问的字典。

在某处添加此扩展程序

extension Array where Element: AWSCognitoIdentityProviderAttributeType {
    func dict() -> [String : String] {
        var dict: [String : String] = [:]
        self.forEach({ e in dict[e.name!] = e.value! })
        return dict
    }
}

然后使用

task.result?.userAttributes.dict()[...]
于 2019-01-27T06:43:26.097 回答