如果我用一个返回一个NSMutableArray的方法创建一个NSObject类,是否需要释放类中的数组还是该类永远不会保留?关于NSObject类的简单问题/保留计数
如何解释那么这里不知道是一些代码:
@implementation PointsClass
- (NSMutableArray *)pointsForLevel
{
NSMutableArray *_points = [NSMutableArray new];
[_points addObject:[NSValue valueWithCGPoint:CGPointMake(521, 279)]];
[_points addObject:[NSValue valueWithCGPoint:CGPointMake(321, 491)]];
[_points addObject:[NSValue valueWithCGPoint:CGPointMake(419, 477)]];
return _points;
}
@end
如果我叫从视图控制器这种方法是这样的:
PointsClass *pointsClass = [PointsClass new];
NSMutableArray *points = [pointsClass pointsForLevel];
[pointsClass release];
难道我只需要释放的指针数组? _points数组是否已被保留?
感谢Firoze,这是我的问题。如果我使用_points = [[NSMutableArray new] autorelease];我的应用程序崩溃。 – EcksMedia 2011-05-29 04:56:45
@EcksMedia Firoze是正确的。调用[pointsClass pointsForLevel]传递自动释放的NSMutableArray。所以现在,只要需要,来电者必须保留它。可能您可以添加更多代码来查看点变量实际使用的位置? – marcus 2011-05-29 06:44:37