2011-09-18 10 views
11

Estoy tratando de usar un degradado en el toque de cacao. Estoy usando el siguiente código para esto:Objetivo-C - Símbolos indefinidos

#import <QuartzCore/QuartzCore.h> 

CAGradientLayer *gradient = [CAGradientLayer layer]; 
gradient.frame = mainView.bounds; 
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor blackColor] CGColor], (id)[[UIColor whiteColor] CGColor], nil]; 
[mainView.layer insertSublayer:gradient atIndex:0]; 

pero me da el siguiente error cuando intento compilar:

símbolos no definidos para la arquitectura i386:
"_OBJC_CLASS _ $ _ CAGradientLayer", referenciado a partir de: objc de clase-ref en OfficeViewController.o ld: símbolo (s) que no se encuentra para collect2 arquitectura i386: ld devolvió el código de salida 1

He intentado hacer una limpieza en vano. ¿No estoy seguro de qué más puedo hacer?

Respuesta

48

Asegúrese de haber incluido realmente el marco QuartzCore en su proyecto. Debe estar en las fases Enlace binario con las bibliotecas:

enter image description here

+5

Y los pasos para llegar a esa pantalla se detallan aquí: http://stackoverflow.com/a/6961788/338265 –

+1

Otro problema es que cuando hace esto, Xcode podría agregar el marco, pero para el objetivo equivocado. Asegúrate de que el marco esté seleccionado para el objetivo que estás construyendo – pheelicks

3

¿Ha incluido también el marco QuartzCore en el proyecto? Solo agregar los encabezados no es suficiente.

+0

Gracias. ¿Pero por qué es que puedo usar algunas de las funciones de QuartzCore (sin agregar el marco de QuartzCore) como la propiedad de la capa? –

Cuestiones relacionadas