У меня есть проблема, когда я определяю UILabel добавить его в UIViewIOS выпуск памяти релиз
UIView *dwView=[[UIView alloc] initWithFrame:CGRectMake(20, 50, 975.0, 620)];
UILabel *label1 = [[UILabel alloc]initWithFrame:CGRectMake(10.0, 160.0, 950.0,
170.0)];
# i add many UILabel in dwView
...
UILabel *label1
UILabel *label2
UILabel *label3
...
dwView.addView(lable1);
dwView.addView(lable2);
dwView.addView(lable3);
dwView.addView(...);
[lable1 release];
[lable2 release];
[lable3 release];
[... release];
Независимо от того, где я определяю этикетку, я выпускаю его с помощью метода:
[lable1 release];
lable1 = nil;
Я записываю saveCount, все его 0, но я проверил память с помощью профилей-профилей, которые он еще не уменьшает.
Я хочу знать, почему это так, и как я могу уменьшить память.
редактировать 1: Я построил свой проект с ARC
редактировать 2:
теперь определить переменный в .h
{
UIView *dwView;
UILabel *label1,lable2;
}
Init в ом
{
dwView=[[[UIView alloc] initWithFrame:CGRectMake(20, 50, 975.0, 620)] autorelease];
label1 = [[[UILabel alloc]initWithFrame:CGRectMake(10.0, 160.0, 950.0, 170.0)] autorelease];
label1.text = wordString;
dwView.addView(lable1);
}
-(void)dealloc {
[super dealloc];
label1 = nil;
dwView = nil;
}
I t ry код выше, он не работает.
Итак: как я могу выпустить переменная dwView
и lable1
Редактировать
Где вы звоните: [lable1 release]; lable1 = nil; это в dealloc? Я полагаю, вы работаете без ARC? – Greg
KeepCount равно 0. Поэтому я думаю, что это уже dealloc. Да, я создаю свой проект с ARC. – user3060257
Невозможно использовать 'release' с ARC. –