If Apple doesn’t want developers using private APIs in the iPhone SDK, why don’t they do something like mark the classes and/or methods with whatever the Objective-C equivalent of C#’s “internal” keyword? If the APIs are spread amongst multiple binaries, Apple could refactor them into dedicated private-API-only binaries to make this easier for them.
Share
Objective-C doesn’t have an equivalent for the C#’s “internal” or Java’s “final” keywords. I think it’s to do with the dynamic nature of the language, that any such functionality would be too easily worked around anyway.
Also regarding the iPhone SDK, all the libraries need to be statically compiled into the aplication, no dynamic linking allowed. So setting a function as “internal” would make no difference in visibility even if it was possible.