温馨提示:本文翻译自stackoverflow.com,查看原文请点击:macos - How to instantiate private / hidden Objective C framework class?
macos objective-c private

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

发布于 2020-03-27 10:36:53

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

下面的类是一个示例:

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

- (BOOL)canBecomeKeyWindow;

@end

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

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

查看更多

查看更多

提问者
Robin Andersson
被浏览
145
Robin Andersson 2019-07-04 15:34

您可以按名称访问该类并实例化它,如下所示:

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

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