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