1.
self.label 会使label的引用计数+1,有多少个self.引用计数就增加几次。
[self.view addSubView:]语法同样会使引用计数加一
2常用的写法一般是
@property (retain) UIlabel *label;
UILabel *temp = [[UILabel alloc] init];
self.label = temp;
_label.frame = CGRectmake(…..);
[self.view addSubview: _label];
[temp release];
-(void)dealloc
{
[_label release];
[super dealloc];
}
加@synthesize时内存第一次会增大一些(不用在dealloc中释放)
xib文件的控件的内存不是立刻释放,而是有系统控制,我们只需要做好我们release就行
如果你在一个函数中创建并返回一个对象,那么你需要把这个对象声明为autorelease
(ClassA *)Function()
{
ClassA *a = [[[ClassA alloc] init] autorelease];
return a;
}
记住原则,只要出现alloc,retain,copy就release,谁操作谁就release,全局变量要在dealloc中release。