是否有可能延遲僅返回值,而不是整個方法,如:延遲的返回值,而不是整個方法
-(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
}];
WOW .... !!!! +1。 – Rushi 2013-02-28 06:05:27
謝謝@Fourj這很有幫助 – KDeogharkar 2013-02-28 06:06:29
+1爲好的答案,很好解決。 – 2013-02-28 06:57:01
你可以做的是。保持這個功能正常功能:
-(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;
}
請問這有什麼區別?如果是這樣,那麼你可以使用睡眠(10);如果UIHang不是一個問題。 – rptwsthi 2013-02-28 05:51:37
是的,它會根據我的需要 – KDeogharkar 2013-02-28 05:52:14
yup只是使用'sleep(_timeInterval);'來延遲返回語句。我也想知道需要實現這樣的代碼是什麼? – Sagrian 2013-02-28 05:56:08