ios - 如何从objective-c中的类名称获取静态/可重定位框架名称

标签 ios objective-c ios-frameworks objective-c-framework

我有一个带有类名称的字符串,并且试图获取该类所属的框架名称。

我尝试过的事情:

  • bundleForClass
  • Class *myClass = NSClassFromString(@"ClassName");
    [NSBundle bundleForClass:myClass];
    

    但是我似乎无法使它与可重定位/静态mach-o类型一起使用。
  • 使用类别
  • 在NSObject上添加新方法
    // This is on NSObject+ModuleID.h
    @interface NSObject (ModuleID)
    - (NSString *) moduleIdentifier;
    @end
    
    // This is on NSObject+ModuleID.m
    @implementation NSObject (ModuleID)
    - (NSString *) moduleIdentifier { return @"Framework Name"; }
    @end
    
    
    Class *myClass = NSClassFromString(@"ClassName");
    [myClass moduleIdentifier];
    

    这不起作用,因为该项目包含多个框架。
  • 向框架
  • 中的每个类添加一个包含框架名称的新字符串属性
    -(NSString *)moduleIdentifier
    { return @"Framework Name"; }
    
    

    考虑到类别数很容易超过一百,这是不可行的。

    有什么办法吗?任何输入将不胜感激,谢谢!

    最佳答案

    尝试

    -(NSString *)moduleIdentifier
    {
        return [NSBundle bundleForClass:self.class].bundleIdentifier;
    }
    

    关于ios - 如何从objective-c中的类名称获取静态/可重定位框架名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61264944/

    相关文章:

    iphone - 在 iOS 中使用 openAL 预加载音频文件的好方法

    ios - 向方法添加附加行为而无需子类化

    c - 如何将 C 代码编译成 Swift Framework

    ios - 在 SpriteKit 中转换到另一个 SKScene 后释放 SKScene

    ios - UIWebview内容不可见

    ios - 如何在 Swift 应用程序中使用带有框架的 Realm(与 Ca​​rthage 一起安装)?

    ios - 实现 PushKit 并测试开发行为

    iphone - 无法发推文图片

    ios - 项目指向手动裁剪空间 SceneKit

    ios - 在 Swift 中实现搜索文本框