Утечка памяти iOS CALayer только на устройстве - PullRequest
3 голосов
/ 03 июня 2011

Инструмент Instruments сообщает об утечке памяти для CALayer.У меня есть собственный класс, подкласс UIViewController;в viewDidLoad () я создаю представление с помощью CAGradientLayer и вставляю это представление как подпредставление текущего представления, например:

UIControl *view = [[[UIControl alloc] initWithFrame:CGRectMake(10, 10, 460, 220)] autorelease];
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = view.bounds;
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor whiteColor] CGColor], (id)[[UIColor colorWithRed:0.85 green:0.85 blue:0.85 alpha:1.0] CGColor],nil];
gradient.startPoint = CGPointMake(0, 0);
gradient.endPoint = CGPointMake(1, 1);
[view.layer insertSublayer:gradient atIndex:0];
view.layer.masksToBounds = YES;
[view.layer setCornerRadius:5];

[self.view insertSubview:view atIndex:1];

Когда я запускаю код в симуляторе, все в порядке.Однако, когда я запускаю его на устройстве (iOS 4.3.3), инструмент Instruments сообщает об утечках для CALayer.Когда я комментирую этот код, утечек нет.В чем здесь проблема?

Редактировать: я обнаружил, что утечка происходит только в том случае, если я вставляю подпредставление в представление с прокруткой (таким образом, мое подпредставление с градиентом калибровки вставляется между представлением и просмотром прокрутки).

1 Ответ

0 голосов
/ 03 июня 2011

отпустите вид и слой потому что симулятор работает в конфигурации системы, поэтому никаких проблем не возникнет но устройство имеет меньше памяти по сравнению с системой

...