Dynamische Klassen in Objective-C laden?

7

Gibt es eine Möglichkeit, eine Klasse aus einer Zeichenfolge in Objective-C zur Laufzeit zu importieren? Alle Methoden, die zu einem ähnlichen Ergebnis führen würden, wären ebenfalls willkommen.

Bearbeiten:

Ich möchte auf eine Klasse zugreifen, deren Namen ich zur Laufzeit festlege. So etwas wie das:

%Vor%

Gibt es eine Möglichkeit, dies zu tun, ohne eine statische # Importanweisung für MyClass am Anfang der Datei zu setzen?

    
Jacob Lyles 15.11.2010, 19:34
quelle

3 Antworten

5

Die Anweisung #import "importiert" keine Klasse - sie fügt den Text aus der benannten Datei in die aktuelle Datei ein. Dies ist offensichtlich nicht zur Laufzeit nützlich, nachdem die Quelle kompiliert wurde.

Sie möchten ein Paket mit den Klassen erstellen und lädt das Paket dynamisch . Um mit den Klassen aus dem Kernprogramm sprechen zu können, möchten Sie wahrscheinlich ein gemeinsames Protokoll, das gebündelte Klassen implementiert, haben.

    
Chuck 15.11.2010, 19:42
quelle
25

Sie können die Methode NSClassFromString verwenden. Also:

%Vor%

Noch ein Beispielcode als Antwort auf Ihre Bearbeitung:

%Vor%     
Jason Coco 15.11.2010 19:37
quelle
0

Danke an Chuck, dass er mich auf den richtigen Pfad gebracht hat, aber die richtige Antwort für diese Frage scheint zu sein, dass es unter iOS 4.1 unmöglich ist, obwohl es mit dem aktuellen Mac OSX SDK mit ladbaren Bundles möglich ist.

    
Jacob Lyles 16.11.2010 22:05
quelle

Tags und Links