gpt4 book ai didi

swift - 在 swift 中作为字典键分类

转载 作者:搜寻专家 更新时间:2023-10-31 19:34:38 25 4
gpt4 key购买 nike

如何使用类作为字典键?例子

class Base:NSObject{}
class A:Base{}
class B:Base{}

var map:[NSObject:AnyObject] = [:]

map[A.self] = "lalala";

更新,发现了一些转换。它有效,但我无法解释。

let any: AnyObject = A.self as AnyObject;
let key = any as! NSObject;
print(key.hash);

最佳答案

我认为您的问题是 A.self 根本就不是 NSObject。将字典定义更改为 [AnyObject:AnyObject] 将失败,因为 AnyObject 不可散列。您可以使用 NSObject 的可哈希类方法之一,例如.描述...

class Base: NSObject {}
class A: Base {}
class B: Base {}

var map:[NSObject:AnyObject] = [:] // A.self in Swift will not be an NSObject
//var map:[AnyObject:AnyObject] = [:]// AnyObject does not conform to Hashable

map[A.description()] = "lalala"
let c = map[A.description()] // "lalala"
//map[A.self] = "lalala" // Cannot subscript [NSObject : AnyObject] with index A.Type

关于swift - 在 swift 中作为字典键分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32648417/

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