可变类内部对象的内存处理

时间:2012-06-14 06:33:39

标签: objective-c arrays

我搜索了这个问题,但找不到合适的答案: 我已经在java工作了很长时间,现在我想学习Objective-C

以下是该方案: 我有一个Objective C类扩展NSObject类,该类包含NSString类型和CustomObject类型的几个字段,我在那里使用@property(nonatomic,retain) NSString or MyObjec t创建了属性。 创建自定义类的对象后,我将其作为[myArray addObject:myObject]

放入NSArray中

现在我要问的是,如果我发布myArray,我必须释放该数组内的对象和该对象内的字段,而某些字段也是另一个类的CustomObject;

2 个答案:

答案 0 :(得分:2)

当您取消分配NSArray时,会向阵列中的每个对象发送一条释放消息。如果对象的唯一引用在数组中,那么您的对象将调用其dealloc方法,该方法负责释放其所有属性。

答案 1 :(得分:1)

我还在学习objc,我认为当你创建自定义对象时,保留计数会增加并将其添加到数组中也会增加保留计数。因此,当您在阵列中释放对象时,它仍然具有需要释放的保留计数。那只是我的想法。