2017-07-30 6 views
0

In einer macOS-App lade ich Pakete zur Laufzeit als "Plugins".Ein Framework in einen NSBundle einbinden, der zur Laufzeit geladen wird

Wenn eines dieser Plugins ein Framework benötigt (zB ein CSV-Importer, der ein CSV-Parsing-Framework benötigt), wie kann ich das einrichten?

Offensichtlich möchte ich nicht mit dem CSV-Parsing-Framework in meiner Haupt-App verknüpfen, aber die Haupt-App wird derjenige sein, der die Symbole dieses Frameworks auflösen muss (Laden des Plugins/Bundles bedeutet das für alle Absichten und Zwecke Der Code des Plugins ist Teil der Haupt-App).

Ich speichere die URL für jedes Plugin, das ich lade, also gibt es möglicherweise eine Möglichkeit, der Hauptanwendung mitzuteilen, nach eingebetteten Frameworks im Paket zu suchen?

Wie würde ich eigentlich darüber gehen?

Antwort

0

Solange Sie die Frameworks für das Plug-in verknüpfen, werden die zusätzlichen Frameworks geladen, wenn das Plug-in geladen wird.

Also alles, was Sie tun müssen, ist:

[[[NSBundle alloc] initWithPath:@"..."] load] 
+0

Sry so spät für die Beantwortung. Nun, ich möchte die App nicht mit dem Framework verlinken, das vom Plugin verwendet wird. Aber es hat funktioniert, als ich das Framework einfach in das Frameworks-Verzeichnis des Plugins eingefügt habe. Ich nehme an, das hast du gemeint? Also werde ich das als die richtige Antwort markieren. –

Verwandte Themen