Objective - C Static Library und ihre öffentlichen Header - was ist der richtige Weg?

8

Ich erstelle eine statische Bibliothek, die in mehreren iOS-Apps verwendet wird. Parallel arbeite ich an einer dieser Apps mit meiner Bibliothek.

Während der Entwicklung bekomme ich mindestens einmal am Tag einen nervigen Fehler, wenn Headerdateien aus der Bibliothek nicht gefunden werden (in meinem App-Projekt). Ich habe gelernt, dass Header beim Erstellen einer statischen Bibliothek entweder Public , Private oder Project

sein können

Ich vermute, dass jeder Header, den ich in meiner Bibliothek ausstellen möchte, Public sein sollte.

Meine Frage ist, wie kann ich diese öffentlichen Header am besten verwalten? Soll ich eine öffentliche Hauptheaderdatei mit #import für alle meine öffentlichen Header erstellen? Kann Xcode solche Dateien für mich generieren?

Eine weitere wichtige Frage ist, was ist der empfohlene Wert für die Einstellung Public Header Folder Path ?

Mein wichtigstes Ziel ist, dass zukünftige Projekte, die diese Bibliothek benutzen, dies mit so wenig Konfigurationen wie möglich tun können (Hinzufügen von Linker-Flags, Ändern von User Header Search Path etc.)

Vielen Dank.

    
Avraham Shukron 10.05.2012, 07:49
quelle

1 Antwort

-1

Über öffentliche / private / Projekt-Header, hier ist eine vorherige Antwort nur für den Fall = & gt; Ссылка

Meistens haben C / C ++ / Obj-C Bibliotheken und Frameworks einen Hauptheader einschließlich aller anderen. Cocoa-Frameworks folgen diesem Pfad zum Beispiel.

Um beispielsweise eine CAAnimation mit QuartzCore-Framework zu deklarieren, können Sie Folgendes tun:

%Vor%

oder

%Vor%

"QuartzCore.h" besteht eigentlich nur aus einem Header-Guard und enthält alle anderen Header der Bibliothek.

Meiner Meinung nach ist es eigentlich besser, die erste zu verwenden, da sie nicht alle Deklarationen enthält, die Sie nicht brauchen. Aber die meiste Zeit wählen wir die faule Lösung, alles auf einmal aufzunehmen.

Ich habe keine Ahnung, ob Sie das direkt mit xCode erzeugen können, trotzdem ist es einfach genug, es selbst zu machen, da es nur ein Haufen von Includes oder Imports ist.

Der Pfad des öffentlichen Header-Ordners lautet normalerweise "MyLibraryOrFramework / Headers" (schauen Sie einfach in das Framework von Cocoa).

Und zuletzt, wenn Sie etwas wirklich wiederverwendbar und nahtlos wollen, schlage ich vor, dass Sie Frameworks statt der statischen Bibliothek (die fast ähnlich ist) verwenden.

Schauen Sie sich diese feine Antwort an, um zu verstehen, warum sie genau zu dem passt, was Sie brauchen: = & gt; Ссылка

Voilà, hoffe diese Antwort hat ein wenig geholfen.

    
nsarno 21.05.2012, 12:03
quelle