我有以下问题:我得到了一个类的实例并想知道该实例所属类的名称。如何获取这个信息?
我有以下问题:我得到了一个类的实例并想知道该实例所属类的名称。如何获取这个信息?
NSStringFromClass([instance class])
可以解决问题。
#import <objc/objc-runtime.h>
,以便在实例上调用类。 - JP Illanes如果你只想测试一个对象是否属于某种类(Class)
BOOL test = [self isKindOfClass:[SomeClass class]];
来自类本身内部
-(NSString *) className
{
return NSStringFromClass([self class]);
}
OBJC:
NSStringFromClass([instance class])
SWIFT
From instance:
String(describing: YourType.self)
从类型:
String(describing: self)
你也可以使用[[self class] description]
只需添加一个类别:
NSObject+Extensions.h
- (NSString *)className;
NSObject+Extensions.m
- (NSString *)className {
return NSStringFromClass(self.class);
}
NSString *className = [[SomeObject new] className];
NSString *className = SomeObject.new.className;
要在任何地方使用它,请将该类别添加到YourProject.pch文件中。
let tokens = split(reflect(self).summary, { $0 == "." })
if let typeName = tokens.last {
println(typeName)
}
self.dynamicType
- jbgNSString* classNameNSStr = [someObjcInstance className]
NSString* classNameNSStr = NSStringFromClass(someObjcClass)
const char* className = object_getClassName(someObjcClass)
--> 相关:
isKindOfClass
:
BOOL isSameClass = [someObjcInstance isKindOfClass: SomeClass];
SomeClass
可以从objc_getClass("SomeClassName")
获取