【发布时间】:2011-10-31 10:05:39
【问题描述】:
我想要一个 ivar,它是字典的有序列表。如果我为这个 NSArray 创建一个@property,设置为retain,然后用NSDictionary 对象填充它,我可以“安全地”假设这些字典也作为 ivar 的一部分保留,还是我需要单独保留这些对象?
【问题讨论】:
标签: objective-c
我想要一个 ivar,它是字典的有序列表。如果我为这个 NSArray 创建一个@property,设置为retain,然后用NSDictionary 对象填充它,我可以“安全地”假设这些字典也作为 ivar 的一部分保留,还是我需要单独保留这些对象?
【问题讨论】:
标签: objective-c
是的,集合类会自动保留你放入其中的东西。因此,如果您将内容放入字典并维护对字典的引用,则可以安全地使用其内容;如果您将此字典存储在一个属性中,您仍然可以安全地使用它。更多信息请见this page:
- 他们保持对其内容的强烈引用。
【讨论】:
NSArray 在添加对象时保留对象,并在添加对象时释放它们 它们被删除或数组被释放。记住这一点,这是 这种保留/释放内存管理的“所有权”概念是 建立在。
【讨论】: