У меня есть подкласс UITableView
, и в нем я хочу сгенерировать количество меток с одинаковыми свойствами (font, textColor, backgroundColor и т. Д.).
Я решил, что самый простой способ добиться этого - создать вспомогательный метод, который создает метку с набором общих свойств:
- (UILabel *)defaultLabelWithFrame:(CGRect)frame {
UILabel *label = [[UILabel alloc] initWithFrame:frame];
label.font = [UIFont fontWithName:@"Helvetica" size:14];
label.textColor = [UIColor colorWithWhite:128.0/255.0 alpha:1.0];
label.backgroundColor = [UIColor clearColor];
return label;
}
Я использую такой метод:
UILabel *someLabel = [self defaultLabelWithFrame:CGRectMake(0,0,100,100)];
[self addSubview:someLabel];
[someLabel release];
Меня беспокоит то, что при создании метки в методе сохраняется, но когда я затем назначаю ее для someLabel, она сохраняется снова, и у меня нет возможности освободить память при создании в методе .
Что будет лучшим подходом здесь?
У меня плата, как у меня есть два варианта:
-
Создайте подкласс UILabel для типа метки по умолчанию.
-
Создайте NSMutableArray с именем defaultLabels и сохраните метки в этом:
- (UILabel *)defaultLabelWithFrame:(CGRect)frame {
UILabel *label = [[UILabel alloc] initWithFrame:frame];
label.font = [UIFont fontWithName:@"Helvetica" size:14];
label.textColor = [UIColor colorWithWhite:128.0/255.0 alpha:1.0];
label.backgroundColor = [UIColor clearColor];
[defaultLabels addObject:label];
[labels release]; //I can release here
return [defaultLabels lastObject]; //I can release defaultLabels when done
}
Я ценю ваши мысли. Приветствия.