I have found this explanation, but I think I am a little confused.
So as I understood if I use category in my BaseDataHandler.m:
@interface STDataHandler (STDataHandlerPrivateMethods)
- (void)syncDataWithServer:(NSDictionary *)params;
Take that category definition for your interface and put it in a file called STDataHandler_private.h. Then import STDataHandler_private.h in your child class's .m file.
In theory some other class could import your "private" header and access that method too... so don't do that. ;)