在我需要将所有数据成员保存在 NSDictionary
中的情况下,放置结构(自定义类型,甚至是标量,即 CGPoint
)是否更有意义在我自己的包装器中(不是 NSValue
),这样我就可以避免每次获取或设置成员时对其进行编码/解码的开销?
对于大型结构(16 个 float ),节省的 IMO 意义重大。但即使使用 CGPoint
,我也会节省 4 个字节的复制时间和编码/解码时间。
最佳答案
为什么不针对您的具体情况进行衡量呢?这是找出答案的唯一真正可靠的方法。
如果这两个选项都不够,您可以通过设置 value callbacks 来查看带有指向普通结构的指针的 CFDictionary
相应地或使用 C++ std::map
/std::tr1::unordered_map
进行旋转(如果你不介意在 C++ 中混用的话)。
关于ios - 性能 - NSValue 中的结构与容器对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3278134/