【问题标题】:Get a view controller's class name as string获取视图控制器的类名作为字符串
【发布时间】:2012-06-09 00:17:57
【问题描述】:

如果我有一个UIViewController 子类,我怎样才能得到类名作为字符串?我试过做[vc class],但这会返回一个Class 对象,而不是NSString

【问题讨论】:

标签: ios objective-c cocoa-touch introspection


【解决方案1】:

NSStringFromClass

将类的名称作为字符串返回。

NSString * NSStringFromClass (  
    Class aClass  
);

【讨论】:

【解决方案2】:

你可以这样做

NSString *strClass = NSStringFromClass([viewController class]);

【讨论】:

    【解决方案3】:

    使用函数:

    const char * class_getName(Class cls)
    

    作为

    class_getName ([vc class]);
    

    【讨论】:

    • 如何将 char* 转换为 NSString?
    • 你不会从 char* 转换为 NSString。您必须使用诸如 initWithBytes:length:encoding: 之类的调用从字节创建字符串。您可能会使用编码 NSASCIIStringEncoding。请参阅其他海报关于 NSStringFromClass 的消息。这比 Objective C 运行时函数 class_getName() 更容易使用。
    • class_getName() 是 NSStringFromClass 在后台使用的运行时函数。
    【解决方案4】:

    您可以在实例化对象时执行以下操作:

    [[NSClassFromString(@"className1") alloc] init];
    

    【讨论】:

    • xonegirlz 询问如何从类中获取 NSString,而您的答案是从 NSString 中获取类的实例(即您给出了相反的答案)。
    猜你喜欢
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2010-10-06
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多