延迟返回值而不是整个方法

KDe*_*kar 2 iphone xcode objective-c ipad

是否可以仅延迟返回值,而不是像整个方法一样:

-(CGFloat)getValue
{
    // code implementation
    return floatvalue; // return float value with some delay.
}
Run Code Online (Sandbox Code Playgroud)

Fou*_*urj 10

使用块以延迟返回值回调;

- (void)ayncGetValue:(void(^)(id value))returnBlock {

  dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 10.f * NSEC_PER_SEC); // delay 10 seconds
  dispatch_after(popTime, dispatch_get_main_queue(), ^{
    returnBlock(@"hello block");
  });
}
// Usage
[obj ayncGetValue:^(id value) {
  // continue  
}];
Run Code Online (Sandbox Code Playgroud)