是否可以仅延迟返回值而不是整个方法,例如:
-(CGFloat)getValue
{
// code implementation
return floatvalue; // return float value with some delay.
}
是否可以仅延迟返回值而不是整个方法,例如:
-(CGFloat)getValue
{
// code implementation
return floatvalue; // return float value with some delay.
}
使用块以延迟返回值回调;
- (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
}];
你能做的是。将此功能保持为正常功能:
-(void)getValue
{
// code implementation
[self performSelector:@selector(returnData) withObject:nil afterDelay:0.5];
}
添加这个将返回数据的新函数:
-(CGFloat)returnData
{
return floatvalue;
}
这里唯一重要的是您必须将 floatvalue 变量声明为类杠杆而不是函数杠杆。
-(void)getValue
{
// code implementation
[self performSelector:@selector(getValue:) withObject:value afterDelay:2];
}
-(CGFloat)getValue:(CGFloat *)float1
{
return float1;
}