在我需要在NSDictionary中保存所有数据成员的情况下,将结构(自定义类型,甚至是标量,即CGPoint)放在我自己的包装器(而不是NSValue)中更有意义,因此我可以避免编码的开销/每次我获得或设置
对于大型结构(16个浮标),IMO的节省是显着的.但即使使用CGPoint,我也会节省4个字节的复制时间和编码/解码时间.
为什么不根据具体情况进行衡量呢?这是找到它的唯一真正可靠的方法.如果两个选项都不够,你可以通过相应地设置value callbacks或者使用C std :: map / std :: tr1 :: unordered_map进行旋转来查看带有指向普通结构的指针的CFDictionary(如果你不介意在C中混合)那是).