-1

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

这是场景:我有一个Objective C扩展NSObject类的类,该类包含NSString类型和CustomObject类型的保存字段,我在那里创建了带有@property(nonatomic,retain) NSString or MyObject 的属性。创建自定义类的对象后,我将其放入 NSArray 中[myArray addObject:myObject]

现在我想问的是,如果我释放 myArray,我是否必须释放该数组内的对象和该对象内的字段,并且某些字段也CustomObject属于另一个类;

4

2 回答 2

2

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

于 2012-06-14T06:47:41.423 回答
1

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

于 2012-06-14T06:40:31.520 回答