className方法?

fuz*_*oat 4 iphone cocoa-touch objective-c ios

我从2010年1月开始在线观看斯坦福iPhone的讲座,我注意到Apple的那个人一直指的是使用"className"获取对象类名,例如

NSArray *myArray = [NSArray arrayWithObjects:@"ONE", @"TWO", nil];
NSLog(@"I am an %@ and have %d items", [myArray className], [myArray count]);
Run Code Online (Sandbox Code Playgroud)

但是,我无法让这个工作,最接近我可以用它来使用类,className错了,它被删除了,只是好奇吗?

NSArray *myArray = [NSArray arrayWithObjects:@"ONE", @"TWO", nil];
NSLog(@"I am an %@ and have %d items", [myArray class], [myArray count]);
Run Code Online (Sandbox Code Playgroud)

加里

Jas*_*oco 12

className方法仅适用于Mac OS X,不适用于iPhoneOS.它通常用于脚本支持,这就是它在iPhone上不存在的原因.您可以使用以下内容:

NSString* className = NSStringFromClass([myArray class]);
Run Code Online (Sandbox Code Playgroud)

如果要存储字符串.NSStringFromClass()并非绝对必要,但您应该使用它,因为它是"记录"的做事方式.