Ich schreibe eine Klassenbibliothek für Mac OS X und iOS, die als Cocoa Framework für OS X und eine statische Bibliothek für iOS veröffentlicht werden soll. Um die Sache zu vereinfachen, beabsichtige ich, mehrere Ziele in Xcode zu verwenden. Die Klassen unter Mac OS X sind jedoch mit Cocoa.h verknüpft, während sie auf iOS mit Foundation.h verlinkt sind.
Meine Fragen sind grundsätzlich:
Oder könnte ich Präprozessordirektiven in den Header-Dateien verwenden, um die Einbeziehung des Frameworks zu steuern, z. B.
%Vor% Sie können diese verwenden, um plattformabhängigen Code zu trennen (siehe TargetConditionals.h
):
Hier ist ein nützliches Diagramm .
- Könnte das Mac OS X-Framework stattdessen mit Foundation.framework verknüpft werden? Klassen, die im Framework verwendet werden, sind NSString, NSMutableString und NSMutableArray.
Probieren Sie es aus und sehen Sie. Wenn die Kompilierung fehlschlägt, nein. Wenn es gelingt, ja.
- Oder könnte ich Präprozessordirektiven innerhalb der Header-Dateien verwenden, um die Einbeziehung des Frameworks zu steuern, z. B.
Ja, das kannst du. Tatsächlich glaube ich, dass dies der einzige Weg ist, dies zu tun.
Das funktioniert perfekt für mich:
%Vor%Sie können diese verwenden, um plattformabhängigen Code zu trennen (siehe %code% ):
%Vor%Hier ist ein nützliches Diagramm .
Ich schreibe eine Klassenbibliothek für Mac OS X und iOS, die als Cocoa Framework für OS X und eine statische Bibliothek für iOS veröffentlicht werden soll. Um die Sache zu vereinfachen, beabsichtige ich, mehrere Ziele in Xcode zu verwenden. Die Klassen unter Mac OS X sind jedoch mit Cocoa.h verknüpft, während sie auf iOS mit Foundation.h verlinkt sind.
Meine Fragen sind grundsätzlich:
Oder könnte ich Präprozessordirektiven in den Header-Dateien verwenden, um die Einbeziehung des Frameworks zu steuern, z. B.
%Vor%
- Könnte das Mac OS X-Framework stattdessen mit Foundation.framework verknüpft werden? Klassen, die im Framework verwendet werden, sind NSString, NSMutableString und NSMutableArray.
Probieren Sie es aus und sehen Sie. Wenn die Kompilierung fehlschlägt, nein. Wenn es gelingt, ja.
- Oder könnte ich Präprozessordirektiven innerhalb der Header-Dateien verwenden, um die Einbeziehung des Frameworks zu steuern, z. B.
Ja, das kannst du. Tatsächlich glaube ich, dass dies der einzige Weg ist, dies zu tun.
Tags und Links objective-c c-preprocessor