Put any methods you want to be private in this category. Create the object's implementation, then, at the bottom of the file, put the category's implementation. This will hide the methods from the rest of the world in such a way that the compiler will generate warnings if you access these methods. It will NOT keep it from happening during runtime, it will only tell you when you compile. There is no way to keep methods from being accessed in ObjC. Protocols Protocols, like the name hints, are definitions of behavior which a group of classes can conform to.
Protocols have no interface or implementation, but they more resemble an interface.
You don't add new instance variables, nor do you add new methods or define the internal workings of any method. All a protocol does is to define a set of methods which a class must contain in order to conform to this the protocol. Protocols come into good use when you're making use of ObjC's dynamic typing ability. ObjC has dynamic runtime typing just like Java. Say you are creating a method which can accept any object.