It is unclear what you are not understanding, I suspect English is not your first language - which is OK! Here is a guess in the hope it helps.
Your original get_time:: method in Services does not use its arguments, and as such will never call callBackTime:, so maybe this is why you say you "don't understand result parameter" - without a call no value is obviously passed for this parameter.
Consider this alternate definition of get_time::
+(void) get_time:(id)delegate :(SEL)selector
{
[delegate performSelector:selector withObject:[NSDate date]];
}
Now the method uses its two parameters to invoke the passed method (selector) on the passed object (delegate) - the method requires one parameter and this is supplied ([NSDate date] - the current date & time, picked as your method is called get_time).
If you run this your callBackTime: method should NSLog() the current date.
Hopefully that helps you understand where result comes from - get_time needs to supply it.
HTH
Addendum
I missed that callBackTime: is declared to accept an NSString * and my example passes an NSDate *. The code will work due to Objective-C's lose typing, but to be correct either callBackTime: should take an id or my sample should pass an NSString, e.g. [[NSDate date] description] would do.
[Services get_time:self :@selector(callBackTime:)];you are calling the get_time method. Show the code written inside the get_time method.