我需要在我的應用程序中撥打getValuesAndCalculate
,該應用程序只有在完成其工作後才能返回。但是,爲了完成工作,它需要從服務器獲取記錄,這需要通過異步調用完成。服務器數據通過回調函數接收。因此,在getValuesAndCalculate
之前,我需要等到我有數據後再繼續進行計算。我如何實現這一點?等待回撥函數在iOS/iPhone中返回
0
A
回答
2
使用協議和代表:
代表是什麼,但你從指定的類的對象在服務器側的對象。 服務器可以使用此對象來調用客戶端代碼中的方法。
+0
從服務器的響應或者您可以使用NSNotificationCenter響應。這被炒魷魚。一樣的。 請不要使用一種循環或類似的!在響應到來之前,您不必阻止您的應用程序。你的應用程序必須等待,直到喚醒它爲止。 – kinghomer 2012-11-10 18:12:25
0
嘗試使用NSRunloop直到您從服務器獲取數據。
對於如:
而 { [NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:1.0] }(isFinished!)
0
您可以實現對這個問題,即線程,
// in main thread
// start activity indicator
NSThread *calculateThread = [[NSThread alloc] initWithTarget:self selector:@selector(getValuesAndCalculate) object:nil];
[calculateThread start];
// End of Main thread
- (void)getValuesAndCalculate
{
// Perform transactions with server
[self performSelectorOnMainThread:@selector(continueMainThreadOperations) withObject:nil waitUntilDone:YES];
}
那就是它!
相關問題
- 1. 等待函數返回值
- 2. 如何等待回調函數返回?
- 3. 等待WaitForSingleObject函數返回的時間
- 4. 等待異步JavaScript函數返回
- 5. Powershell:不要等待函數返回
- 6. make函數等待承諾返回nodejs
- 7. 等待函數返回異步js
- 8. Ruby(鞋子) - 等待函數返回值
- 9. Jquery:在返回之前等待回調
- 10. 如何讓當前線程等待函數在java中返回?
- 11. 函數調用另一個函數,但不等待返回值?
- 12. Perl函數「等待」,然後返回1到主函數
- 13. 從javascript函數返回而不等待被調用函數
- 14. 等待Rethinkdb答應在返回父函數之前返回結果
- 15. 函數返回一個函數,返回一個函數等
- 16. 在循環jquery中等待ajax返回
- 17. 類返回等待的UIWebView
- 18. JQuery:等待$ .post返回
- 19. 的BufferedReader等待線返回
- 20. 進程等待不返回
- 21. 等待窗體返回vb.net
- 22. 等待返回值NodeJS
- 23. 如何使用async等待回調函數從異步函數返回值?
- 24. 如何「等待」回調返回?
- 25. 等待異步回調返回值
- 26. 在返回值之前等待內部函數完成
- 27. 如何在返回前等待函數完成?
- 28. Extjs/Javascript - 在函數返回之前等待MessageBox響應
- 29. 讓C#函數在返回之前等待UI負載
- 30. nodeJS等待函數在繼續之前返回
從服務器獲取數據的回調函數去協議用自己的邏輯.. – ajay 2012-03-29 07:53:23
呼叫getValuesAndCalculate? – danielbeard 2012-03-29 07:54:14
看一看[AFNetworking(https://github.com/AFNetworking/AFNetworking)你可以做異步請求,並使用塊來處理響應。 – rckoenes 2012-03-29 07:56:23