2 starwar2012 starwar2012 于 2013.02.28 15:05 提问

不影响方法单独延迟返回值

能不能实现单独延迟返回值,不对整个方法造成影响?

-(CGFloat)getValue{
// code implementation
return floatvalue; // return float value with some delay.
}

3个回答

prettYYoyic
prettYYoyic   2013.02.28 16:01
已采纳

使用block回调值时延迟

- (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  
}];
love_loveec
love_loveec   2013.02.28 15:34

两种方法,喜欢哪个用哪个吧

第一种:
需要在方法中用到sleep:

-(CGFloat)getValue{
// code implementation

 sleep(5);
return floatvalue; // return float value with some delay.
}

第二种:

使用performSelector:

[self performSelector:@selector(getValue) withObject:nil afterDelay:5];
xinyoulingxi1_tong
xinyoulingxi1_tong   2013.02.28 17:10
-(void)getValue
{
// code implementation

  [self performSelector:@selector(getValue:) withObject:value afterDelay:2];
}

-(CGFloat)getValue:(CGFloat *)float1
{
  return float1;
}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!