输入“任何?”没有下标成员[重复]
Posted
技术标签:
【中文标题】输入“任何?”没有下标成员[重复]【英文标题】:Type 'Any?' has no subscript members [duplicate] 【发布时间】:2016-09-21 09:19:14 【问题描述】:我正在尝试在我的应用程序中登录 fb 后检索电子邮件 ID。但是,当我尝试从结果中获取值时出现错误。
错误是:Type 'Any?' has no subscript members
。
func fetchProfile()
print("Fetch Profile")
let parameters = ["fields": "email, first_name, last_name, picture.type(large)"]
FBSDKGraphRequest(graphpath: "me", parameters: parameters).start (connection, result, error) in
let email = result["email"] as? String //Type 'Any?' has no subscript members error occurs here.
【问题讨论】:
这可能会有所帮助:***.com/questions/39516199/… 【参考方案1】:改一下
let email = result["email"] as? String
进入
guard let resultNew = result as? [String:Any]
let email = resultNew["email"] as! String
完整答案
let parameters = ["fields": "email, first_name, last_name, picture.type(large)"]
FBSDKGraphRequest(graphPath: "me", parameters: parameters).start (connection, result, error) in
guard let resultNew = result as? [String:Any]
let email = resultNew["email"] as! String
【讨论】:
Xcode 建议将下面这行 let email = resultNew["email"] 更改为 let email = resultNew?["email"] 这样做后 email 中的值为零。 @Vyshakh - 哪一行 更新评论 你在这里得到什么结果resultNew
我也得到了零【参考方案2】:
适用于 Swift 3。
改变这个-->
let email = result["email"] as? String
进入-->
if let fbemail = (result as AnyObject)["email"]! as? String
print(fbemail)
【讨论】:
从去年开始,这个问题已经有了一个公认的答案。您的回答不会增加或改善任何东西。你所做的只是复活旧问题。 @Fogmeister,这对我不起作用,所以我发布了我的答案,因为它可能对某些人有所帮助,发布答案不会伤害任何人,他们没有必要给低分,通过***,您会找到许多答案,而不是公认的答案。你给降分有什么问题?以上是关于输入“任何?”没有下标成员[重复]的主要内容,如果未能解决你的问题,请参考以下文章
为firebase数据库创建用户对象时,类型“任何”没有下标成员[重复]