2011-09-18 24 views
11

Sto provando a utilizzare una sfumatura nel tocco di cacao. Sto utilizzando il seguente codice per questo:Objective-C - Simboli non definiti

#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]; 

Ma io ottenere il seguente errore quando provo a compilare:

simboli non definiti per l'architettura i386:
"_OBJC_CLASS _ $ _ CAGradientLayer", fa riferimento da: objc-classe-ref nel OfficeViewController.o ld: simbolo (s) non trovato per l'architettura i386 collect2: ld returned 1 exit status

Ho provato a fare un pulito senza alcun risultato. Non sono sicuro di cos'altro posso fare?

risposta

48

Assicurati di aver effettivamente incluso il framework QuartzCore nel tuo progetto. Dovrebbe essere nelle fasi di collegamento binario con le librerie:

enter image description here

+5

E i passaggi per raggiungere quella schermata sono spiegati qui: http://stackoverflow.com/a/6961788/338265 –

+1

Un altro trucco è quando si esegue questa operazione, Xcode potrebbe aggiungere il framework, ma per l'obiettivo sbagliato. Assicurati che il framework sia selezionato per il Target che stai costruendo – pheelicks

3

Avete incluso anche il framework QuartzCore nel progetto? Basta aggiungere le intestazioni non è abbastanza.

+0

Grazie. Ma perché posso utilizzare alcune delle funzioni di QuartzCore (senza aggiungere il framework QuartzCore) come la proprietà layer? –

Problemi correlati