【问题标题】:Description to return just ClassName?只返回 ClassName 的描述?
【发布时间】:2010-11-26 20:58:11
【问题描述】:

类实例的默认描述返回“ClassName: 0x105120”。我如何修改下面的方法只返回“ClassName”?

// The code below just returns the address ...
- (NSString *)description {

 NSString *result;

 result = [NSString stringWithFormat:@"%p", self];
    return result;
}

编辑:在这种情况下,这是否正确?虽然我确实明白,如果我想真正将 className 作为 NSString 我应该使用 NSStringFromClass([self class])

- (id)init {
 NSLog(@"_init: %@", [self class]);
 [super init];
 return self;
}

提前致谢-gary-

【问题讨论】:

  • 为什么不直接用正确的方式获取类名NSLog(@"_init: %@", NSStringFromClass([self class]));

标签: objective-c nsstring


【解决方案1】:

iPhoneOS:NSStringFromClass([self class])
MacOS:[self className]

... 给你一个带有类名的 NSString

编辑:

对于 iPhoneOS 和 MacOS,方法是:

NSStringFromClass([self class])

【讨论】:

  • NSStringFromClass 实际上也是在 Mac OS X 上执行此操作的正确方法。 -className 是 NSObject 上用于脚本的类别的一部分。
  • 或者,在 Objective-C 2.0 及更高版本中,您可以简单地说:NSStringFromClass(self.class) 使用点符号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-17
  • 2014-07-02
  • 2023-04-07
  • 2017-01-02
  • 2013-09-11
  • 1970-01-01
相关资源
最近更新 更多