Objective C Erzeuge Objekt für Klasse

7

Ich würde gerne wissen, wie man ein Objekt der angegebenen Class in Ziel c erstellt. Gibt es eine Methode, die mir in den Laufzeitdokumenten fehlt? Wenn ja, was ist es? Ich würde gerne in der Lage sein, Folgendes zu tun:

%Vor%

Bitte beachten Sie, dass Name kein Name der Klasse ist, sondern eine Abkürzung dafür, und ich kann nicht tun, was in Erzeuge Objekt aus NSString des Klassennamens in Objective-C .

    
Richard J. Ross III 07.09.2010, 18:08
quelle

2 Antworten

18

Ein einfacher [[cls alloc] init] wird den Trick machen.

    
cobbal 07.09.2010, 18:10
quelle
3

Wie der Cobbal erwähnt hat, ist [[cls alloc] init] üblich. Die alloc ist eine statische Klassenmethode, die in NSObject definiert ist, die den Speicher zuweist, und init ist der Instanzkonstruktor. Viele Klassen bieten Convenience-Konstruktoren, die dies in einem Schritt für Sie erledigen. Ein Beispiel ist:

%Vor%

Beachten Sie die * nach NSString . Du arbeitest im Wesentlichen mit C hier also Zeigern auf Objekte!

Vergessen Sie auch nicht, den mit alloc zugewiesenen Speicher mit einem entsprechenden [instance release] freizugeben. Sie müssen den mit einem Convenience-Konstruktor erstellten Speicher nicht freigeben, da dieser für Sie automatisch freigegeben wurde. Wenn Sie Ihre neue cls-Instanz zurückgeben, sollten Sie sie zum Autorelease-Pool hinzufügen, damit kein Speicher verloren geht:

%Vor%

Hoffe, das hilft.

    
Greg Sexton 07.09.2010 18:25
quelle