3

我有一个带有类名的字符串,我正在尝试获取该类所属的框架名称。

我尝试过的事情:

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

但我似乎无法使其与可重定位/静态 mach-o 类型一起使用。

  1. 使用类别在 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];

这不起作用,因为该项目包含多个框架。

  1. 将包含框架名称的新字符串属性添加到框架中的每个类
-(NSString *)moduleIdentifier
{ return @"Framework Name"; }

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

有没有办法做到这一点?任何输入将不胜感激,谢谢!

4

1 回答 1

0

尝试

-(NSString *)moduleIdentifier
{
    return [NSBundle bundleForClass:self.class].bundleIdentifier;
}
于 2020-04-17T09:54:37.020 回答