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?
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.
Sie können die Methode NSClassFromString
verwenden. Also:
Noch ein Beispielcode als Antwort auf Ihre Bearbeitung:
%Vor%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.
Tags und Links objective-c iphone cocoa dynamic