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

问题描述 投票:1回答:1

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

我尝试过的事情:

  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"; }

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

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

ios objective-c ios-frameworks objective-c-framework
1个回答
0
投票

尝试

-(NSString *)moduleIdentifier
{
    return [NSBundle bundleForClass:self.class].bundleIdentifier;
}
© www.soinside.com 2019 - 2024. All rights reserved.