Getting name of the class from an instance
我有以下问题:我通过了一个类的实例,想要知道这个实例的类的名称。怎么弄到这个?
如果你想看到的是,如果它的测试面向对象的类类型的确定
1 | BOOL test = [self isKindOfClass:[SomeClass class]]; |
在类本身中
1 2 3 4 | -(NSString *) className { return NSStringFromClass([self class]); } |
只是添加类别:
1 2 3 4 5 6 7 | NSObject+Extensions.h - (NSString *)className; NSObject+Extensions.m - (NSString *)className { return NSStringFromClass(self.class); } |
然后使用下面的代码:
1 | NSString *className = [[SomeObject new] className]; |
或盈亏平衡点:
1 | NSString *className = SomeObject.new.className; |
使用它的任何地方yourproject.pch添加到类文件。
objc:
1 | NSStringFromClass([instance class]) |
斯威夫特
从实例:
1 | String(describing: YourType.self) |
从类型:
1 | String(describing: self) |
你也可以使用
如果你是在寻找如何让你可以使用classname迅速获得信息关于对象的反映。
1 2 3 4 | let tokens = split(reflect(self).summary, { $0 =="." }) if let typeName = tokens.last { println(typeName) } |