Как получить имя статической / перемещаемой структуры из имени класса в objective-c
У меня есть строка с именем класса, и я пытаюсь получить имя фреймворка, которому принадлежит класс.
Вещи, которые я пробовал:
- 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];
Это не работает, поскольку проект включает более 1 фреймворка.
- Добавление нового строкового свойства, содержащего имя фреймворка, к каждому классу в фреймворках
-(NSString *)moduleIdentifier
{ return @"Framework Name"; }
Это невозможно, учитывая, что количество классов легко превышает сотню.
Есть какой-либо способ сделать это? Любой вклад будет оценен, спасибо!
1 ответ
Пытаться
-(NSString *)moduleIdentifier
{
return [NSBundle bundleForClass:self.class].bundleIdentifier;
}