objective-c - 我可以使用 [NSObject hash] 将 NSView 存储在字典中吗?

标签 objective-c cocoa hash nsdictionary nsview

我读到 -hash 在不同的体系结构上不会返回相同的值。但是,我目前在文档中没有看到这一点。

是否有更好的方法将 NSView 存储在字典中而无需子类化?

最佳答案

您可能会对哈希在此上下文中的含义感到困惑。哈希值只是 Cocoa 集合类在内部使用的一个数字,用于提高性能。 NSObject 实现了此方法,因此您不必重写它,除非更好、更有意义的哈希算法在比较/搜索数组或字典中的对象时可以带来更好的性能。

由于任何对象都不应在磁盘上缓存其哈希值,因此该注释仅意味着您不应依赖 Apple 类返回的具体哈希值。它被认为是一个次要实现细节。

NSDictionary 保留其值但复制键。因此,您无需执行任何操作即可将 View 作为值保存在字典中,但如果您想将 View 用作键,则必须实现 -copyWithZone: 方法。

阅读 Apple 文档了解更多信息。

关于objective-c - 我可以使用 [NSObject hash] 将 NSView 存储在字典中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3000699/

相关文章:

ios - 无限宽度水平 ScrollView 以显示图像

iphone - 掌握 UIviews 和 UIViewcontrollers 的概念

objective-c - 设置数组的差异

hash - 如何为每行 rdd 生成哈希? (PYSPARK)

iOS:在自定义 UITableViewCell 中更改 contentView backgroundColor on touchDown

ios - 如何在 Objective-C 中定义 API Url

objective-c - 将 NSView 绘制到 NSGraphicsContext 中?

objective-c - 对日期字符串或对象的 NSArray 进行排序

ruby - 一个哈希中的多个子哈希

c++ - 使用 std::unordered_map 的散列函数有什么限制