Objective-C futures (or promises, if you prefer)