代码之家  ›  专栏  ›  技术社区  ›  nall

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

  •  1
  • nall  · 技术社区  · 15 年前

    在objective-c中,我需要将可变集合整数(单调的、非连续的、可能会变得相当大)与布尔值相关联。最明显的方法就是使用一个NSDictionary,将NSNumbers作为键和值。

    有没有更好的方法不涉及这么多的对象创建?如果我不熟悉一些技术的话,我真的不会去尝试预先优化,而是去学习。

    这些数据是特定类实现的私有数据,因此不需要与CocoaAPI的其余部分集成。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Chuck    15 年前

    将一个标量映射到另一个标量的一般情况并不是Cocoa能够很好地处理的事情,因为它关注对象,并且在提供任何东西之前需要包装标量。但是对于布尔型,只有两种可能的映射状态,因此这就为实现这一点打开了一个非常方便的方法: NSIndexSet . 存在于set=boolean状态。

        2
  •  2
  •   Nicholas Riley    15 年前

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

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