我有以下问题:我得到了一个通过的类的实例,想知道这个实例的类的名称。如何得到这个?
问问题
69064 次
7 回答
407
NSStringFromClass([instance class])
应该做的伎俩。
于 2010-02-07T17:33:17.840 回答
31
如果您只想测试一个对象以查看它是否是某个类的类型
BOOL test = [self isKindOfClass:[SomeClass class]];
于 2010-02-07T17:39:53.763 回答
17
从班级本身内部
-(NSString *) className
{
return NSStringFromClass([self class]);
}
于 2014-07-13T05:42:51.803 回答
3
对象:
NSStringFromClass([instance class])
迅速
从实例:
String(describing: YourType.self)
从类型:
String(describing: self)
于 2018-12-05T06:14:21.493 回答
2
只需添加一个类别:
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 文件。
于 2016-05-21T07:20:41.580 回答
1
你也可以使用[[self class] description]
于 2016-01-07T16:59:42.550 回答
0
如果您正在查看如何在 Swift 中获取类名,您可以使用反射来获取有关对象的信息。
let tokens = split(reflect(self).summary, { $0 == "." })
if let typeName = tokens.last {
println(typeName)
}
于 2015-02-08T10:37:29.493 回答