Утечка памяти при использовании UIColor - PullRequest
1 голос
/ 14 августа 2011

Я получаю утечку памяти в инструментах для объекта UIDeviceRGBColor в этой строке:

[[self navigationController] navigationBar].tintColor = [UIColor colorWithRed:90.0/255.0 green:48.0/255.0 blue:48.0/255.0 alpha:1.0]; 

есть предложения как решить?

Спасибо

Ответы [ 5 ]

2 голосов
/ 15 августа 2011

Возможно, объект кэшируется UIKit?

Если вы выполните команду в цикле 1000 раз, вы получите 1 утечку или 1000?

изменить: см. IOS 4.3 UINavigationBar tintColor Leaks . Мой вышеупомянутый вопрос все еще стоит, хотя

1 голос
/ 15 августа 2011

colorWithRed:green:blue:alpha: производит автоматически выпущенный UIColor. Это не должно быть утечка памяти. Я предполагаю, что установщик свойств также синтезируется правильно, так как это класс Apple. Так что я не вижу утечки.

1 голос
/ 14 августа 2011

Возможно, попробуйте создать экземпляр UIColor, подобный этому

UIColor *color = [[UIColor alloc] initWithRed:90.0/255.0 green:48.0/255.0 blue:48.0/255.0 alpha:1.0];

затем установите цвет оттенка навигационной панели

self.navigationController.navigationBar.tintColor = color;

затем отпустите цвет объекта

[color release];

После этого проверьте в приборах, если предмет все еще протекает.

0 голосов
/ 15 августа 2011

В вашем коде нет утечки. Если есть какая-либо утечка, это будет в коде Apple (с которым вы ничего не можете сделать, кроме сообщения об ошибке), но гораздо более вероятно, что Instruments просто сообщает о ложном срабатывании.

0 голосов
/ 14 августа 2011

Я бы установил ваш оттенок следующим образом:

[self.navigationController.navigationBar setTintColor:[UIColor colorWithRed:90.0/255.0 green:48.0/255.0 blue:48.0/255.0 alpha:1.0]];
...