如何实例化私有/隐藏的Objective C框架类?

时间:2019-07-03 13:38:09

标签: objective-c macos private

如果执行class-dump的AppKit,它将显示该框架中定义的多个私有/隐藏类。

一个示例是以下类:

__attribute__((visibility("hidden")))
@interface _NSFullScreenWindow : NSWindow
{
}

- (BOOL)canBecomeKeyWindow;

@end

如何创建要在Objective-C中私有/隐藏的类的实例?

我知道不应该访问私有/隐藏的类,因此不需要道德课。

1 个答案:

答案 0 :(得分:0)

您可以按名称访问该类并按以下方式实例化它:

Class winClass = NSClassFromString(@"_NSFullScreenWindow");
id win = [winClass new];

运行该代码后,Win将是指向_NSFullScreenWindow实例的指针。