我想将一些数据传递给我的对象,我有两个选择。
关于记忆 - 什么更有效?声明三个属性或声明一个NSDictionary
使用initWithCapacity:3
?
我想将一些数据传递给我的对象,我有两个选择。
关于记忆 - 什么更有效?声明三个属性或声明一个NSDictionary
使用initWithCapacity:3
?
声明 3 个属性将比使用NSMutableDictionary
.
使用属性还可以使您的代码更易于阅读,并允许您的编译器帮助您实现类型安全。
另一个考虑因素是您不能存储nil
在集合中。
编辑:
就内存而言,您提到的两个选项之间的唯一区别是它NSDictionary
需要在堆中拥有自己的内存。无论哪种方式,对象本身仍然需要堆中相同的内存。
我会提倡使用属性,但不是因为性能问题;仅仅是因为我认为它更具可读性且不易出错——您可以通过使用键常量使字典方法干净,但这是额外的工作。
对我来说,最重要的是,在 Instruments 向您展示您在这些对象上花费了大量时间或内存之前,您应该走可读性和清晰性的道路。如果您剃掉几个周期或几个字节,这不太可能很重要。但即便如此,重构用于三个参数的对象初始化的方法也不会是一项艰巨的工作。