Private APIs without headers
A have a framework and an app.
To access the content (executable) of the framework I must use the headers in that framework. But in other environments like the Microsoft's .Net Framework, You can dynamically reflect (scan) DLLs to find out classes, methods, events and more.
So I think this way: .Net Framework is a "virtual" environment. The CLR links objects at runtime. It knows all the names of all the objects. I have read (and not one time) that the Objective-C Runtime also dynamicaly binds objects and knows the objects names. By "object names" I mean class names (NSString, NSLock...), method names (InitWithSomething...) and so on.
And so why can't my app link to frameworks directly without header files?
I could have the whole header file in a string and the Objective-C Runtime would have all the info that it needs. This way I could use Private APIs on iOS and Apple couldn't detect it.
If I'm wrong could someone please tell me where is the error.