2013-03-26 77 views
3

在我的應用程序中,我有這個簡單的註釋< - >> Core Data sqlite中的照片關係,照片是具有「允許外部存儲」的二進制數據, ,刪除規則爲音符級聯照片,照片無效音符。當我試圖添加一些筆記與照片然後刪除它們,它看起來很好在iPhone模擬器目錄(外部照片文件被刪除)。但是,當我在iPhone上使用iCloud同步功能試用它時,我的應用程序的iCloud存儲大小隻會在添加照片時保持增長,但在刪除筆記或照片後不會減少 - 任何想法?核心數據刪除外部存儲實體不釋放iCloud中的空間

回答

4

您刪除了該照片,但事務日誌仍然存在。核心數據的iCloud集成基於事務處理 - 無論您何時保存更改,都會創建一個新的事務日誌。交易涉及創建,更新或刪除數據。事務日誌會一直存在,直到潛在的iCloud軟件決定對此做些什麼。

當您創建照片時,您將獲得一個創建對象幷包含照片數據的事務日誌。當您刪除照片時,您會看到一條說明刪除該照片的事務日誌。 第二個日誌不會取消第一個,它增加了它。現在你有兩個交易日誌,照片數據仍然存在。

在某些時候,潛在的iCloud代碼將合併日誌,並且在那一刻照片應該實際上消失。然而,你不能做到這一點,你必須等待,直到它在未來某個時候發生。

+0

謝謝湯姆 - 我同時使用蘋果技術支持票,並得到非常相似的答案。那意味着我們無能爲力?我看到我的應用程序無需釋放任何東西即可獲得170MB的iCloud存儲。另外,我從不同的討論中看到,在iCloud中使用Core Data通常是一個糟糕的主意 - 有沒有建議我應該實際去哪個方法?非常感謝! – hyouuu 2013-03-27 03:22:38

+0

不幸的是,我不知道任何可以直接影響它的內容。核心數據的iCloud集成通常有多種方式。您可能需要考慮其他選項,或者只是在未來iOS版本改進之前不包括同步。 – 2013-03-27 04:42:08

+0

感謝您的闡述湯姆! – hyouuu 2013-03-27 04:52:42