Object Obj-c:从另一个对象分配子类对象并释放

Object Obj-c:从另一个对象分配子类对象并释放,object,subclass,release,dealloc,alloc,Object,Subclass,Release,Dealloc,Alloc,在使用仪器分析我的应用程序时,我发现我分配的阵列存在漏洞。据我所知,我这样做是正确的,但看起来好像有什么不对劲 假设我有三个班,M班,A班和B班 子类B有一个唯一的NSArray属性,它不是它的超类a的一部分 M分配子类B的实例 在类M中,访问子类B的实例,从该类访问并分配NSArray属性 在子类B中,dealloc被重写,并且有NSArray的一个版本,超级dealloc在它下面 当我释放M类时,我得到了NSArray对象的泄漏 我的理解是,我能够从类M中分配NSArray对象,例如:

在使用仪器分析我的应用程序时,我发现我分配的阵列存在漏洞。据我所知,我这样做是正确的,但看起来好像有什么不对劲

假设我有三个班,M班,A班和B班

  • 子类B有一个唯一的NSArray属性,它不是它的超类a的一部分
  • M分配子类B的实例
  • 在类M中,访问子类B的实例,从该类访问并分配NSArray属性
  • 在子类B中,dealloc被重写,并且有NSArray的一个版本,超级dealloc在它下面
  • 当我释放M类时,我得到了NSArray对象的泄漏
我的理解是,我能够从类M中分配NSArray对象,例如:

tempClassB.myNSArray = [[NSArray alloc] initWithArray:finalArray];
我可以重写子类B中的dealloc来释放它自己的对象,它不存在于它的超类A中。我可以调用super dealloc来调用类A中的dealloc:

- (void) dealloc{

    [myNSArray release];

    [super dealloc];

}

我遇到的问题是在m类中分配B类将使m类负责释放它。我应该在类B中分配对象并像我一样释放,或者在类M的dealloc中为该对象放置一个释放