0

我想将一些数据传递给我的对象,我有两个选择。

关于记忆 - 什么更有效?声明三个属性或声明一个NSDictionary使用initWithCapacity:3

4

2 回答 2

2

声明 3 个属性将比使用NSMutableDictionary.

使用属性还可以使您的代码更易于阅读,并允许您的编译器帮助您实现类型安全。

另一个考虑因素是您不能存储nil在集合中。

编辑:

就内存而言,您提到的两个选项之间的唯一区别是它NSDictionary需要在堆中拥有自己的内存。无论哪种方式,对象本身仍然需要堆中相同的内存。

于 2013-04-10T19:06:33.010 回答
2

我会提倡使用属性,但不是因为性能问题;仅仅是因为我认为它更具可读性且不易出错——您可以通过使用键常量使字典方法干净,但这是额外的工作。

对我来说,最重要的是,在 Instruments 向您展示您在这些对象上花费了大量时间或内存之前,您应该走可读性和清晰性的道路。如果您剃掉几个周期或几个字节,这不太可能很重要。但即便如此,重构用于三个参数的对象初始化的方法也不会是一项艰巨的工作。

于 2013-04-10T19:23:14.010 回答