Ich habe das folgende Problem: Ich erhalte eine Instanz einer Klasse übergeben und möchte den Namen der Klasse dieser Instanz wissen. Wie bekomme ich das?
Ich möchte auf keinen Fall Ihre Wut erregen, aber dies war die zweite Antwort auf iOS in Ihrem Profil. Es scheint mir nur hinzuzufügen, dass wir eine Instanz innerhalb ihrer Implementierung als "Selbst" bezeichnen können. Würden Sie dies verteidigen, um die akzeptierte Antwort des Dreijährigen wesentlich zu ergänzen?
Danh
@danh Ich sehe, du jagst mich. Schön für dich!
Katedral Pillon
Entschuldigung, ich habe gerade auf diesen geklickt und darüber diskutiert, ob ich etwas sagen soll. Ich wollte nur ein bisschen rippen, aber ich weiß, dass die Gemüter in diesen halbgesichtslosen Umgebungen ziemlich schnell heiß werden. Danke, dass du gutmütig bist. (Tatsächlich +1 zum Üben der Kapselung).
Antworten:
NSStringFromClass([instance class])
sollte den Trick machen.quelle
#import <objc/objc-runtime.h>
, die Klasse für eine Instanz aufrufen zu können.Wenn Sie nur ein Objekt testen möchten, um festzustellen, ob es sich um einen Typ einer bestimmten Klasse handelt
quelle
Aus der Klasse heraus
quelle
Fügen Sie einfach eine Kategorie hinzu:
Verwenden Sie dann den folgenden Code:
oder auch:
Um es überall zu verwenden, fügen Sie die Kategorie zur Datei YourProject.pch hinzu.
quelle
Sie können auch verwenden
[[self class] description]
quelle
OBJC:
SCHNELL
Von der Instanz:
Vom Typ:
quelle
Wenn Sie suchen, wie Sie den Klassennamen in Swift erhalten, können Sie Reflect verwenden, um Informationen zum Objekt abzurufen.
quelle
self.dynamicType