我有以下问题: 我得到一个类的实例传递,并想知道这个实例的类的名称。怎么弄到这个?
NSStringFromClass([instance class])应该可以。
NSStringFromClass([instance class])
如果您想要做的只是测试一个对象,看看它是否是某个类的类型
BOOL test = [self isKindOfClass:[SomeClass class]];
从班级内部
-(NSString *) className { return NSStringFromClass([self class]); }
如果您正在查看如何在 Swift 中获取类名,您可以使用反射来获取有关对象的信息。
let tokens = split(reflect(self).summary, { $0 == "." }) if let typeName = tokens.last { println(typeName) }
也可以使用 [[self class] description]
[[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 文件中。
目标:
SWIFT
例如:
String(describing: YourType.self)
类型:
String(describing: self)