在Objective-C中,我需要将可变集合整数(单调,非连续,可能相当大)与布尔值相关联。显而易见的方法是将NSDictionary w / NSNumbers作为键和值。
有没有更好的方法不涉及如此多的对象创建?我真的不想尝试预先优化,以便了解是否有我不熟悉的技术。
此数据是特定类实现的私有数据,因此不需要与其他Cocoa API集成。
答案 0 :(得分:2)
假设您对指针大小的整数感到满意,可以使用NSMapTable(也附带C API)或CFDictionary(免费桥接到NSDictionary) )。
或者,当然,您可以使用(非CF / Cocoa)C或C ++数据结构,但它不会像Cocoa一样干净整合。
答案 1 :(得分:1)
将一个标量映射到另一个标量的一般情况不是Cocoa处理得好的事情,因为它专注于对象和标量需要在它提供任何东西之前被包装。但就布尔值而言,只有两种可能的映射状态,因此开辟了一种非常方便的方法:NSIndexSet。存在于set = boolean状态。