gpt4 book ai didi

swift - 无法获得第一个(其中 :​) to work with [NSDictionary]

转载 作者:行者123 更新时间:2023-11-30 12:32:51 25 4
gpt4 key购买 nike

我有一个 NSDictionary 数组,我想从该数组中获取一个具有特定键“id”的字典。我尝试执行以下操作,但收到错误:

Cannot call value of non-function type 'NSDictionary?'

考虑以下我正在尝试做的示例:

let dictionaries: [NSDictionary] = [NSDictionary(dictionary: ["id": "123", "name": "the name"]),
NSDictionary(dictionary: ["id": "456", "name": "the other name"])]
if let dictionary = dictionaries.first(where: { $0.objectForKey("id") == "123" }) {
print(event.objectForKey("name") ?? "")
}

最佳答案

问题是 objectForKey (Swift 3 中的 object(for:))的结果。对于没有类型的 NSDictionary,结果是 Any?。您无法将 Any?String 进行比较。然后需要转换为 String:

if let dictionary = dictionaries.first(where: { $0["id"] as? String == "123" }) {
print(dictionary["name"] ?? "")
}

但是错误消息没有意义。

如果您使用 Swift 字典,或者更好的是,将字典解析为结构/类并仅使用您的类,则可以完全避免该问题。切勿在解码/编码之外使用字典来表示应用中的对象。

关于swift - 无法获得第一个(其中 :​) to work with [NSDictionary],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43276556/

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