gpt4 book ai didi

swift - 为什么我会在 Swift "Could not find member subscript"中收到此错误

转载 作者:行者123 更新时间:2023-11-28 07:01:30 25 4
gpt4 key购买 nike

我正在尝试使用 facebook 登录后返回的字典对象结果。结果变量看起来像这样

 result = [ location: ["name": "Paris, France", "id": "34534999333"]  ] 

我的目标是访问位置名称。我试试这段代码:

 if let location = result["location"]?["name"] as? String {
//do something
}

但我收到错误“找不到成员下标”。我认为我的代码逻辑没有任何问题。如果 result["location"] 存在,则在其中查找索引 "name",将其转换为字符串,如果成功,则将常量 "location"设置为等于它。

我可以用更长的代码做我想做的事,但我只想了解为什么 Swift 不理解上面的代码。

最佳答案

我怀疑您的问题是 result 是可选类型。 option-点击result变量。如果它是 NSDictionary? 类型或类似 [NSObject: AnyObject]? 的类型,那么 result 必须先解包,然后才能使用它。我会先尝试:

if let location = result?["location"]?["name"] as? String {
//do something
}

如果 resultAnyObjectAnyObject?,我建议一次采取以下步骤:

if let dict = result as? NSDictionary {
if let location = dict["location"] as? NSDictionary {
if let name = location["name"] as? String {
// use name
}
}
}

你可以将上面的内容压缩成一个 if:

if let name = ((result as? NSDictionary)?["location"] as? NSDictionary)?["name"] as? String {
// use name
}

关于swift - 为什么我会在 Swift "Could not find member subscript"中收到此错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31902416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com