где утечка памяти - PullRequest
1 голос
/ 02 июня 2011

У меня есть строка кода:

CGFloat *components = CGColorGetComponents([color CGColor]);

, и анализатор говорит, что здесь есть утечка.Я попытался бесплатно (компоненты), но приложение падает, когда я это делаю.Здесь действительно есть утечка, так как я ничего не выделил.Я знаю, что CGColorGetComponents возвращает массив из 3 CGFloat, но когда я пытаюсь освободить их, он падает.

Любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 02 июня 2011

См. SO # 792119 .

Объявление переменной не создает массив. Фактически, ни один не делает CGColorGetComponents. Все, что создало объект CGColor, создало массив и сохранило его внутри объекта; CGColorGetComponents позволяет вам иметь указатель на это хранилище.

Короче, не освобождай свой указатель.

Однако вы можете установить его в NULL.

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

Может быть, вы должны передать color.CGColor в качестве аргумента?Посмотрите на эту ветку: Что возвращает CGColorGetComponents ()?

...