ios - 性能 - NSValue 中的结构与容器对象

标签 ios objective-c cocoa cgpoint nsvalue

在我需要将所有数据成员保存在 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/

相关文章:

iphone - iPhone 上 UIBarButtonItems 之间的默认空间

ios - 为什么我的 iOS 应用程序无法从 Firebase 数据库读取?

iphone - UITableView 内容高度问题导致应用程序崩溃

objective-c - 主线程之外的 NSRunAlertPanel()?

iphone - 如何 "pass on"可变数量的参数到 NSString 的 +stringWithFormat :

c# - 启用环绕的线性旋转木马

ios - 为什么两个 id 变量的 class_copyPropertyList() 存在差异但具有相同的类类型

ios - 获取CoreData一对多关系的索引路径?

ios - 在 UIDatePicker ios 中设置默认初始时间

objective-c - 从 NSWebView 获取 XML