iOS Framework und Category Import

8

Ich habe gerade angefangen, mein eigenes Framework zu erstellen, das einige nützliche Helfer, Utils, Tools usw. zusammenfasst. Alles funktioniert gut, ich frage mich nur, ob es möglich ist, meine Kategorien direkt in meine Haupt-Header-Framework-Datei zu importieren.

Zum Beispiel heißt mein Framework myFramework. Ich habe einen Klassennamen myFramework.h in öffentlichen Headern innerhalb von Ich habe alle meine Importe geschrieben:

%Vor%

Dann baue ich mein Framework und verteile es an meine Teamentwickler.

Was ich erwarte ist, dass andere Entwickler nur importieren müssen, um auf alle Kategorien meines Frameworks zuzugreifen. Es ist in Ordnung, wenn ich Subklassen statt Kategorien verwende, aber es ist nicht das, was ich erwarte.

Zur Zeit benutze ich LoadableCategory.h , um etwas zu machen Meine Kategorien arbeiten in meinem Framework und geben an meine Entwickler an, dass sie das -ObjC-Flag in den "Other Linker flags" -Einstellungen verwenden und jede Kategorie wie folgt importieren sollten:

%Vor%

Vielleicht ist es nicht möglich, aber ich frage mich warum? Ich vermisse etwas :)

Danke! Pebie

PS: Sorry für mein Englisch ...

    
Pebie 21.06.2013, 14:04
quelle

2 Antworten

4

Wie CaptainRedmuff sagte,

Ich habe einen Fehler gemacht. Nach ein paar Versuchen, ich sehe, dass mit% Co_de% Linker Flag funktioniert es sogar für Kategorien importieren. Mein Fehler war in meiner Haupt-Header-Datei: schlechte Importe, einige Sachen usw. fehlen. Und schließlich nicht laden mein Projekt nach set -all_load flag.

Jetzt habe ich in -all_load :

%Vor%

In meinem Projekt, wo ich das Framework verwende:

1 / Setup "Andere Linker-Flag" auf myFramework.h (laden Sie gegebenenfalls XCode neu)

2 / Nur -all_load in #import <myFramework/myFramework.h> zum Beispiel

Dann muss ich nicht alle anderen Sachen in mein Projekt importieren. Alles scheint in Ordnung zu sein, obwohl ich XCode zum ersten Mal nach dem Hinzufügen meines Frameworks neu starten muss.

Danke CaptainRedmuff, ich habe deine Lösung zwar schon vergeblich getestet. Nach mehr Tests ist es OK!

* BEARBEITEN Alles funktioniert gut, bis ich zu einer meiner Klasse gehe, die eine meiner Kategorien benutzt. XCode spezifiziert mich, das ist ein Fehler wie die Kategorie nicht existiert. Das gleiche Problem, wenn ich meinen Code säubere: ((

  

Keine sichtbare Schnittstelle für ... deklariert den Selektor ...

** BEARBEITEN Wenn ich myProjectApp-Prefix.pch in <myFrameWork/myFramework> importiere, aber nicht innerhalb von myProjectApp-Prefix.pch , ist es OK.

    
Pebie 21.06.2013, 15:29
quelle
3

Wenn Sie sicherstellen möchten, dass Ihre Kategorien beim Verknüpfen Ihres Frameworks einbezogen werden, müssen Sie den Parameter -all_load im Abschnitt Andere Linker-Flags Ihrer Build-Einstellungen angeben.

    
CaptainRedmuff 21.06.2013 14:34
quelle