objc_getProtocol() returns NULL for `NSApplicationDelegate"?
-
01-06-2021 - |
Question
I'm trying to use the objc_getProtocol()
function to get a reference to the struct representing the NSApplicationDelegate
protocol:
Protocol *protocol = objc_getProtocol("NSApplicationDelegate");
However, for some reason, this always returns NULL
.
Other protocols such as NSObject
, NSCoding
, NSTableViewDelegate
, and NSTableViewDataSource
work fine.
Is there something special about NSApplicationDelegate
, or am I doing something wrong?
Solution
Found the answer in the Apple docs:
The compiler creates a protocol object for each protocol declaration it encounters, but only if the protocol is also:
- Adopted by a class,
- Or referred to somewhere in source code (using @protocol())
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow