簡體   English   中英

根據要求將應用程序數據與iCloud同步

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM