In Objective-C you cannot instantiate a protocol, you can only be conform to it. Thus, instead of having an object of type Calculator, you should have a generic object that is conform to Calculator protocol.