我读到 -hash 在不同的体系结构上不会返回相同的值。但是,我目前在文档中没有看到这一点。
是否有更好的方法将 NSView 存储在字典中而无需子类化?
最佳答案
您可能会对哈希在此上下文中的含义感到困惑。哈希值只是 Cocoa 集合类在内部使用的一个数字,用于提高性能。 NSObject 实现了此方法,因此您不必重写它,除非更好、更有意义的哈希算法在比较/搜索数组或字典中的对象时可以带来更好的性能。
由于任何对象都不应在磁盘上缓存其哈希值,因此该注释仅意味着您不应依赖 Apple 类返回的具体哈希值。它被认为是一个次要实现细节。
NSDictionary 保留其值但复制键。因此,您无需执行任何操作即可将 View 作为值保存在字典中,但如果您想将 View 用作键,则必须实现 -copyWithZone: 方法。
阅读 Apple 文档了解更多信息。
关于objective-c - 我可以使用 [NSObject hash] 将 NSView 存储在字典中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3000699/