Как создать частный / скрытый каркасный класс Objective C? - PullRequest
1 голос
/ 03 июля 2019

Если вы выполняете class-dump из AppKit, он обнаруживает несколько частных / скрытых классов, определенных в этой структуре.

Одним из примеров является следующий класс:

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

- (BOOL)canBecomeKeyWindow;

@end

Как создать экземпляр класса, который должен быть закрытым / скрытым в Objective-C?

Я знаю, что частные / скрытые классы не предназначены для доступа, поэтому нет необходимости в уроках морали.

1 Ответ

0 голосов
/ 04 июля 2019

Вы можете получить доступ к классу по имени и создать его экземпляр следующим образом:

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

Win будет указателем на экземпляр _NSFullScreenWindow после запуска этого кода.

...