id is a reference to a Objective-C object whose class is unknown, hence delegate can be any Objective-C object. When you find this:
@property (nonatomic, weak) id<SomeProtocolHere> delegate;
...it means that delegate can be any kind of Objective-C object that implements ("conforms to") SomeProtocolHere protocol.