Swift: '(String) -> AnyObject?' 没有名为 'subscript' 的成员

标签 swift dictionary pfuser

我正在尝试将 PFUser(来自 Parse.com)转换为 [String : AnyObject] 类型的字典,但出现以下错误,这让我感到非常困惑。我做了谷歌搜索,发现了以下两个 SO 问题,但是,这仍然对解决我的问题没有帮助:

错误:

'(String) -> AnyObject?' does not have a member named 'subscript'

找到这两个帖子: relevant SO post 1 , relevant SO post 2

我的 PFUser 有键:fullNameemaillatitudelongitudelinkedInUrl .

由于上述键值的类型是 String 和 Double 的混合。所以我正在尝试创建以下词典:

var userData : [String: AnyObject] = [
            "fullName" : pfUser.valueForKey("fullName") as? String,
            "latitude" : pfUser.valueForKey("latitude") as? Double,
            "longitude" : pfUser.valueForKey("longitude") as? Double,
            "email" : pfUser.valueForKey("email") as? String,
            "linkedInUrl" : pfUser.valueForKey["linkedInUrl"] as? String
        ]

我的 XCode 版本是 6.4。我感谢您的帮助。

最佳答案

您正在声明错误类型的 userData。它必须是 [String: AnyObject?] 因为你的值是可选的。

并且不要忘记将此行 "linkedInUrl": pfUser.valueForKey["linkedInUrl"] 更改为? String 与此行 "linkedInUrl": pfUser.valueForKey("linkedInUrl") as?字符串.

你的代码将是:

var userData : [String: AnyObject?] = [
        "fullName" : pfUser.valueForKey("fullName") as? String,
        "latitude" : pfUser.valueForKey("latitude") as? Double,
        "longitude" : pfUser.valueForKey("longitude") as? Double,
        "email" : pfUser.valueForKey("email") as? String,
        "linkedInUrl" : pfUser.valueForKey("linkedInUrl") as? String
    ]

关于Swift: '(String) -> AnyObject?' 没有名为 'subscript' 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32152440/

相关文章:

Swift - SpriteKit - 在永远运行时更新 SKAction.waitForDuration

swift - 导入 FirebaseAnalytics 模块而不是 Firebase

swift - Parse.com PFuser.currentuser 始终使用 iPhone 6 plus 登录

ios - Firemonkey:如何从我的应用程序打开 native IOS map ?

ios - 在 Swift 中智能搜索解析用户名不起作用

ios - PFUser登录后如何检索ObjectID?

ios - 试图避免找到 nil 解包可选值

Swift <-> React Native Bridge 重复接口(interface)

jquery - 谷歌地图 v3 的 setinterval 或 settimeout

dictionary - 带有选项参数或使用空字典作为默认参数的函数