如果我用一個返回一個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