Objective c 返回NSArray并释放它

Objective c 返回NSArray并释放它,objective-c,Objective C,我有一个classA,其中有一个方法,从另一个classB调用它来获取精灵的坐标 当我在classA中调用该方法时,它返回NSMutablearray,但随后我想释放该数组。 如果我发布classA,可以吗?是否正在释放其中所有分配的阵列?不 或者我应该在被调用的classA的dealoc中释放数组吗 gameHandler.m -(NSMutableArray*)stand2_Co { ... return myArray } 然后从另一个类调用它: theLevel=[[gameHandl

我有一个classA,其中有一个方法,从另一个classB调用它来获取精灵的坐标

当我在classA中调用该方法时,它返回NSMutablearray,但随后我想释放该数组。 如果我发布classA,可以吗?是否正在释放其中所有分配的阵列?不 或者我应该在被调用的classA的dealoc中释放数组吗

gameHandler.m
-(NSMutableArray*)stand2_Co
{
...
return myArray
}
然后从另一个类调用它:

theLevel=[[gameHandler alloc] init];
..
..
int theNumber = [   [ [theLevel stand2_Co] objectAtIndex:0] integerValue];

[theLevel release];
如果我释放gameHandler,我还需要释放该阵列? 如果是的话,我应该什么时候做


非常感谢。

我建议您运行Analyzer工具和内存泄漏检测仪,以验证没有任何泄漏。我建议您专门在ClassA中发布thEdit数组。任何分配的对象都应该由调用者或分配者释放。

您应该
释放
类中保留的
分配的
所有对象

如果您正在使用另一个类中的某些对象,您应该
保留它们,以确保它们在该类中的工作期间处于活动状态。

  • 您拥有您创建的任何对象
使用名称以“alloc”开头的方法创建对象, “新建”、“复制”或“可变复制”(例如,alloc、newObject或 可变副本)

  • 当你不再需要它时,你必须放弃它的所有权 你拥有的物品
通过向对象发送释放消息来放弃对象的所有权 或自动释放消息。用可可术语来说,放弃 因此,对象的所有权通常称为 “释放”一个物体

  • 您不能放弃您不拥有的对象的所有权
他说,这只是先前政策规则的必然结果 明确地说


stand2_Co
中,您应该创建自动删除的
myArray
并返回它。Thnaks。我的问题是,当我分配classA并从另一个classB调用其中的一个方法时,我不能在classA中释放它,因为classA中的方法在返回值后退出,所以我没有地方放置释放行,如果我将它放在返回之后,它将不会被执行,如果我将它放在返回之前,它将释放数组,而不会将其返回到classB。。。然后您应该只返回autorelease对象:
return[objectautorelease]