Typecast von Objecten aus geladenem Bundle / Plugin

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Typecast von Objecten aus geladenem Bundle / Plugin

    Hallo,
    ich programmiere eine Host-MAC-OS-Anwendung, die mehrere Plugins (Bundles) lädt.
    Das funktioniert soweit gut.
    Das Problem ist, wenn ich versuche, Objekte von einem Plugin zu erstellen und von einem anderen zu lesen.

    Also ich habe eine Klasse erstellt:

    @ObjC public
    class item : NSObject
    {
    public var title: String
    public var value: Int
    }

    Diese (deklaration) habe ich in die Plugins und in den Host eingebunden.
    Nun rufe ich eine Routine in den Plugins vom Host aus mit einem inout-Array auf, in das die
    Plugins Elemente anhängen sollen.

    for plugin in self.plugins
    {
    plugin.getItemsFromPlugins(&itemsArray)
    }

    So weit funktioniert alles. Ich bekomme die generierten Elemente in mein Array und kann die entsprechenden Inhalte im Debugger sehen.
    im Debugger.

    itemsArray = (Any) 5 Werte
    [0] = (plugin1.item) 0x000....
    [1] = (plugin2.item) 0x000....
    [2] = (plugin3.item) 0x000....

    Das Problem ist, dass ich keine Objekte vom Typ "item" zurückbekomme, sondern vom Typ "pluginX.item" im Host
    und kann sie daher nicht zu "item" typecasten.

    Einfache Typen wie NSString hingegen kann ich ohne Probleme lesen.
    Ich verstehe dieses Problem nicht und weiß nicht, woher es kommt? Ist dies eine Compiler-Option
    oder eine Swift-Funktion?
    Ich bin für jede Hilfe dankbar.

    Gruß Chris

    Ach ja, die Methode habe ich so in der Art in C++ schon einmal gebaut und da war es kein Problem einen void * in den von mir gewünschten Typ zu casten. Warum sich swift hier quer stellt ist mir schleierhaft, vor allem warum wird aus meinem item plötzlich ein anders Objekt. Ich kann in keiner Doku dazu auch nur irgendwas sinnvolles finden. Hat es was mit mangeling zu tun?