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

How to instantiate private / hidden Objective C framework class?

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

一个例子如下class:

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

- (BOOL)canBecomeKeyWindow;

@end

你如何创建一个 class 的实例,它打算在 Objective-C 中私有/隐藏?

我知道私人/隐藏 classes 不应该被访问,所以不需要道德教训。

您可以按名称访问 class 并将其实例化如下:

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

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