好的,这就是我正在做的事情。
NSMutableArray *array = [[NSMutableArray alloc] init];
UIView *tempview = [[UIView alloc] initWithFrame:CGRectMake(15, 30, 320, 460)];
[array addObject:tempView];
UIView *tempview2 = [[UIView alloc] initWithFrame:CGRectMake(15, 30, 320, 460)];
[array addObject:tempView2];
[array release];
是否会释放数组,同时释放两个分配的UIViews?
答案 0 :(得分:2)
如果您copy
,alloc
,retain
或new
某事,您有责任发送release
或{{1 }}
你说autorelease
所以你必须[[UIView alloc] init...]
生成的对象。
答案 1 :(得分:2)
您有责任在创建视图后发布视图。这是怎么回事:
您创建保留计数为1的视图。 当它们被添加到数组中时,它将保留它们(保留计数= 2)。 释放数组时,它将释放视图(保留count = 1)。 你仍然需要释放它们。
正确的代码是:
NSMutableArray *array = [[NSMutableArray alloc] init];
UIView *tempview = [[UIView alloc] initWithFrame:CGRectMake(15, 30, 320, 460)];
[array addObject:tempView];
[tempview release];
UIView *tempview2 = [[UIView alloc] initWithFrame:CGRectMake(15, 30, 320, 460)];
[array addObject:tempView2];
[tempview2 release];
[array release];