快速問題PFConfig。 不幸的是,我無法在後臺獲取當前配置,所以我需要在應用程序同步啓動時調用它。PFConfig同步通話
如果網絡不可用,某些版本的iOS上的應用程序會凍結,我想知道是否有一些超時可以在同步調用中設置。
感謝
快速問題PFConfig。 不幸的是,我無法在後臺獲取當前配置,所以我需要在應用程序同步啓動時調用它。PFConfig同步通話
如果網絡不可用,某些版本的iOS上的應用程序會凍結,我想知道是否有一些超時可以在同步調用中設置。
感謝
我的主要建議是做呼叫非同步和設計UI來對付它。例如,第一次運行的視圖控制器在準備運行時顯示「hi」(並且要求用戶必須首次運行網絡 - 如果他們剛剛下載應用程序,則極有可能)。
換句話說,我認爲這是一個錯誤,迫使配置調用是同步的,但這裏有一個方法來做到這一點...
- (PFConfig *)yuckyGetConfig {
__block PFConfig *config;
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
[PFConfig getConfigInBackgroundWithBlock:^(PFConfig *config, NSError *error) {
config = config;
dispatch_semaphore_signal(semaphore);
}];
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
return config;
}
的想法是,dispatch_semaphore_wait
相當於一個while循環(但執行少得多的指令),直到getConfig塊執行完畢。 (這個想法得益於@Rob, here,儘管他的其他建議是針對文檔API的)。
我認爲調用同步功能也是錯誤的,您的回答接近解決方案。我需要設計我的應用程序啓動以考慮該解決方案。 – mulp
你能解釋爲什麼它不能被取得異步嗎? – danh
我的配置中有一個標誌,用於打開(或關閉)應用程序上的功能。這個標誌可以更新,所以每次運行我需要檢查它的值的應用程序。 – mulp