NSString类类型

时间:2010-06-25 11:28:35

标签: objective-c

是否可以将类的名称变为如下字符串:

NSString *kls = (NSString *)[self.name class];
NSLog(@"%@", [kls isKindOfClass:[NSString class]] ? @"YES" : @"NO");

我能做到:NSString *kls = [[[NSString alloc]initWithFormat:@"%@", [self.name class]]autorelease];

但这对我来说似乎有点啰嗦。 它不是特别针对任何任务,我只是想在我去的时候更多地了解这门语言。

2 个答案:

答案 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设备上正常运行。)