<p>I need to hide (make private) the <code>-init</code> method of my class in Objective-C.</p>

<p>How can I do that?</p>

That depends on what you mean by "make private".  In Objective-C, calling a method on an object might better be described as sending a message to that object.  There's nothing in the language that prohibits a client from calling any given method on an object; the best you can do is not declare the method in the header file.  If a client nevertheless calls the "private" method with the right signature, it will still execute at runtime.
That said, the most common way to create a private method in Objective-C is to create a
Category
in the implementation file, and declare all of the "hidden" methods in there.  Remember that this won't truly prevent calls to
```
init
```
from running, but the compiler will spit out warnings if anyone tries to do this.
MyClass.m
```
```
@interface MyClass (PrivateMethods)
- (NSString*) init;
@end

@implementation MyClass

- (NSString*) init
{
    // code...
}

@end
```
```
There's a decent
thread
on MacRumors.com about this topic.