Как продолжение, в этом конкретном случае, если вы работаете на iOS, Apple рекомендует использовать UIColor и его метод -CGColor
для возврата CGColorRef в colors
NSArray.В примечаниях к выпуску Переход к ARC в разделе «Компилятор обрабатывает объекты CF, возвращенные из методов какао», указано, что использование метода, подобного -CGColor
, который возвращает объект Core Foundation, будет автоматически обрабатываться.правильно компилятором.
Таким образом, они предлагают использовать код, подобный следующему:
CAGradientLayer *gradientLayer = (CAGradientLayer *)[self layer];
gradientLayer.colors = [NSArray arrayWithObjects:(id)[[UIColor darkGrayColor] CGColor],
(id)[[UIColor lightGrayColor] CGColor], nil];
Обратите внимание, что на данный момент в примере кода Apple отсутствует приведенный выше (id) приведенный код, что по-прежнему необходимо, чтобы избежать ошибки компилятора.