Objective c 可变数组中自定义类对象的内存处理
我搜索了这个问题,但没有找到合适的答案: 我在java上工作了很长时间,现在我想学习Objective-C 以下是场景: 我有一个Objective C类,它扩展了NSObject类,该类包含NSString类型和CustomObject类型的存储字段,我在其中创建了@PropertyOnAtomic、retain NSString或MyObject属性。 创建自定义类的对象后,我将其作为[myArray addObject:myObject]放入NSArray中Objective c 可变数组中自定义类对象的内存处理,objective-c,arrays,Objective C,Arrays,我搜索了这个问题,但没有找到合适的答案: 我在java上工作了很长时间,现在我想学习Objective-C 以下是场景: 我有一个Objective C类,它扩展了NSObject类,该类包含NSString类型和CustomObject类型的存储字段,我在其中创建了@PropertyOnAtomic、retain NSString或MyObject属性。 创建自定义类的对象后,我将其作为[myArray addObject:myObject]放入NSArray中 现在我想问的是,如果我释放my
现在我想问的是,如果我释放myArray,我是否必须释放该数组中的对象和该对象中的字段,并且某些字段太过自定义,属于另一个类的对象 我仍在学习objc,我认为当您创建自定义对象时,保留计数会增加,将其添加到数组中也会增加保留计数。因此,当您释放数组中的对象时,它仍然有一个需要释放的保留计数。那只是我的想法 解除分配NSArray时,将向阵列中的每个对象发送一条释放消息。如果对对象的唯一引用在数组中,那么对象将调用其dealloc方法,该方法负责释放其所有属性 您是否考虑过使用ARC而不是经典的retain版本?这将使思考这类问题变得更容易。实际上,我想使用手动释放而不是ARCthaks来回答您的问题,但是其他与该对象关联的自定义对象呢,因为存在实例变量,就像Daniel在释放数组时的回答一样,如果NSArray中只有一个引用,则数组中的每个对象将收到一条释放消息并减去retain count.okz。如果我发布了array,自定义类的子字段也将被发布,其中这些子字段也是自定义对象,只要您的自定义对象在其dealloc方法中发布它们(它可能应该这样做)