1

在 Objective-C 中,我需要将可变集合整数(单调、非连续、可能变得相当大)关联到布尔值。显而易见的方法就是将带有 NSNumbers 的 NSDictionary 作为键和值。

有没有更好的方法不涉及太多的对象创建?如果有我不熟悉的技术,我真的不想进行预优化。

这些数据对于特定的类实现是私有的,因此不需要与其他 Cocoa API 集成。

4

2 回答 2

2

假设您对指针大小的整数感到满意,您可以使用NSMapTable(也带有C API)或CFDictionary(免费桥接到 NSDictionary)。

或者,当然,您可以使用(非 CF/Cocoa)C 或 C++ 数据结构,但它不会与 Cocoa 完全集成。

于 2009-10-18T02:18:56.240 回答
1

将一个标量映射到另一个的一般情况并不是 Cocoa 处理得那么好,因为它专注于对象,并且标量需要在它提供任何东西之前被包装。但是在布尔值的情况下,只有两种可能的映射状态,因此开辟了一种非常方便的方法:NSIndexSet。集合中的存在 = 布尔状态。

于 2009-10-18T02:39:55.253 回答