是否可以将类的名称变为如下字符串:
NSString *kls = (NSString *)[self.name class];
NSLog(@"%@", [kls isKindOfClass:[NSString class]] ? @"YES" : @"NO");
我能做到:NSString *kls = [[[NSString alloc]initWithFormat:@"%@", [self.name class]]autorelease];
但这对我来说似乎有点啰嗦。 它不是特别针对任何任务,我只是想在我去的时候更多地了解这门语言。
答案 0 :(得分:1)
NSString * classNameStr = NSStringFromClass([anObject class]);
答案 1 :(得分:0)
在Mac上,假设您的对象继承自NSObject
类,而不仅仅是实现NSObject
协议(后一种情况似乎排序不太可能),你应该可以打电话:
NSString* str = [anObject className];
className
是与Mac脚本支持相关联的,因此在NSObject
的iOS版本中无法使用。在这种情况下,你可以这样做:
NSString* str = [[anObject class] description];
(我实际上只在Mac上试过这个,所以它可能无法在iOS设备上正常运行。)