在Objective-C中将整数映射到布尔值

时间:2009-10-18 02:04:19

标签: objective-c mapping associations nsdictionary

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

有没有更好的方法不涉及如此多的对象创建?我真的不想尝试预先优化,以便了解是否有我不熟悉的技术。

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

2 个答案:

答案 0 :(得分:2)

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

或者,当然,您可以使用(非CF / Cocoa)C或C ++数据结构,但它不会像Cocoa一样干净整合。

答案 1 :(得分:1)

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