[英]Sync app data with iCloud on request
我想將一些應用程序數據存儲在iCloud中,並且希望在應用程序進入后台或關閉時將其保存。
我有一個MyDocument
類,它是按照此Apple教程編寫的。 實際上,我這樣做:
// this function called from applicationDidEnterBackground
void SaveICloudData( const char *rawData )
{
MyDocument *doc = AppDelegate.getICloudDocument; // MyDocument is subclass of UIDocument, like in tutorial
NSString *str = [[NSString alloc] initWithUTF8String:rawData];
[doc setDocumentText:str];
}
我的應用程序進入后台,僅在再次打開時才同步。 但是我想手動將數據與iCloud同步。 我怎樣才能做到這一點?
在退出之前, UIDocument
檢查文檔是否具有hasUnsavedChanges
。 如果YES
,則調用保存。
您正在applicationDidEnterBackground委托方法中設置文檔文本,這可能為時已晚。
從方法文檔:
在退出此方法之前,您應該執行與調整用戶界面有關的所有任務,但是其他任務(例如保存狀態)應根據需要移至並發調度隊列或輔助線程。 因為在applicationDidEnterBackground:中啟動的任何后台任務很可能要等到該方法退出后才會運行,因此在啟動這些任務之前,您應該請求額外的后台執行時間。 換句話說,首先調用beginBackgroundTaskWithExpirationHandler :,然后在調度隊列或輔助線程上運行任務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.