Private methods are only private, so they are not documented in the header file. Because of this, you cannot #import include them in your project and, thus, the compiler will warn you that the "selector is not recognized" or something like that.
You will be able to call these methods in the same way as public methods, because this is just where you declare a prototype that makes the method private, Objective-C does not have such a thing as hidden, really private methods.
At run time, you can always find all methods using introspection, so it is really impossible to completely hide your methods / properties.
You can add an instance variable id _internal , which points to an object that does all the work, all the more difficult to call private methods, although this is not possible.
Joost source share