Siamo appena inciampati in questo oggi. Ricevo avvisi in Xcode 4.6 se provo ad accedere a CALayer
senza importare <QuartzCore/QuartzCore.h>
. Lo stesso però funziona bene in Xcode 5.Quartz Core Importazione non richiesta in Xcode 5?
risposta
Sì, <QuartzCore/QuartzCore.h>
è incluso automaticamente, ma questo sembra essere più un effetto collaterale del previsto, a causa è incluso solo indirettamente:
<UIKit/UIKit.h>
include<UIKit/UISlider.h>
,- nel iOS 7 SDK
<UIKit/UISlider.h>
include<QuartzCore/QuartzCore.h>
, causa di nuove variabili di istanza nella classeUISlider
(del tipoCAShapeLayer
).
Inoltre, Xcode 5 ha una nuova build impostazione "quadri di collegamento automaticamente", che è di default su (e richiede la nuova funzione "moduli"), in modo che il quadro QuartzCore si aggiunge anche al librerie di collegamenti.
+10 per una spiegazione così chiara e concisa.PS: Sono ancora in grado di usare i metodi CALayer senza aggiungerlo al Link con le librerie binarie – Anonymous
Ho notato anche questo , e il file di intestazione 'UISlider' è particolarmente dettagliato, dal momento che gli ivar sono dichiarati nell'interfaccia di classe (dove apprendiamo che il design di iOS 7 è chiamato" look neue ") ... Probabilmente non era destinato! – Guillaume
@Anonimo: hai ragione. L'ho provato con un progetto creato inizialmente con Xcode 4. Con un nuovo progetto Xcode 5, le librerie di riferimento sono collegate automaticamente per impostazione predefinita. Ho aggiornato la risposta di conseguenza. –
Sì, questo è vero. Sospetto che l'SDK di iOS7 ora includa implicitamente questo framework dove non lo era iOS6. Questo sarebbe solo un problema se stai cercando di far funzionare il tuo progetto sia su Xcode4 che su 5 –
Vorrei chiedere a SO di contrassegnare questa domanda come Wiki della comunità. –
Non sono sicuro, ma penso che sia incorporato in Xcode 5 –