我刚刚从2010年1月在网上观看了斯坦福大学的iPhone讲座,我注意到来自苹果的家伙一直在提到使用"className“获取对象的类名。
NSArray *myArray = [NSArray arrayWithObjects:@"ONE", @"TWO", nil];
NSLog(@"I am an %@ and have %d items", [myArray className], [myArray count]);然而,我不能让它工作,我能想到的最接近的方法是使用类,className是不是错了,它被移除了吗,只是好奇?
NSArray *myArray = [NSArray arrayWithObjects:@"ONE", @"TWO", nil];
NSLog(@"I am an %@ and have %d items", [myArray class], [myArray count]);加里
发布于 2010-06-08 00:23:20
className方法仅在Mac上可用,在iPhoneOS上不可用。它通常用于脚本支持,这就是iPhone上不存在它的原因。您可以使用类似以下内容:
NSString* className = NSStringFromClass([myArray class]);如果您想要存储字符串。严格来说,NSStringFromClass()并不是必需的,但您可能应该使用它,因为它是一种“有文档”的方式。
发布于 2010-06-08 00:25:08
className方法只存在于Mac上。但是,通过NSObject类别为iPhone实现起来相当容易:
//NSObject+ClassName.h
@interface NSObject (ClassName)
- (NSString *) className;
@end
//NSObject+ClassName.m
@implementation NSObject (ClassName)
- (NSString *) className {
return NSStringFromClass([self class]);
}
@end现在,应用程序中的每个NSObject (和子类)都将有一个className方法。
发布于 2010-06-08 00:25:18
NSStringFromClass( [someObject class] );以及Objective-C2.0之前的版本
someObject->isa.namehttps://stackoverflow.com/questions/2991190
复制相似问题