Mit Xcode 4 und dem iOS 6 SDK, um die Klassen in QuartzCore.framework zu nutzen, mussten Sie eine Verbindung mit QuartzCore.framework und #import <QuartzCore/QuartzCore.h>
herstellen. Das war in Ordnung und es ergab Sinn. Ich war glücklich mit meiner Sicht der Welt:)
In Xcode 5 mit dem iOS 7 SDK werden die QuartzCore-Header automatisch importiert. Die Verwendung von CA-Klassen löst keine Warnungen oder Linker-Fehler aus.
Meine Frage ist dies:
Da diese Header offensichtlich von irgendwo importiert werden und die Bibliothek verknüpft wird, wie kann ich die Quelle des Imports und des verknüpften Frameworks verfolgen? Dies ist mehr für meine Neugierde und um mehr über diesen Prozess zu verstehen, als um ein spezifisches Problem zu lösen.
Zusätzliche Informationen:
Enable Modules (C and Objective-C)
und Link Frameworks Automatically
auf "No" setzen, scheint es nicht notwendig zu sein, dass der #import von QuartzCore kompiliert wird. otool
zeigt nichts vom QuartzCore-Framework in seiner Ausgabe:
Bearbeitet mit einer Teillösung
<QuartzCore/QuartzCore.h>
, der in iOS 6 nicht vorhanden war. Das Rätsel wurde gelöst, aber das Fehlen von Linker-Fehlern ist immer noch merkwürdig. Sieht so aus, als ob es von UIKit verlinkt wird, möglicherweise mit LC_REEXPORT_DYLIB.
Weitere Informationen zu diesem Twitter-Thread: Ссылка
Das Ausführen von Otool auf UIKit.framework zeigt, dass es verknüpft ist.
%Vor%Tags und Links objective-c ios xcode linker module