2013-05-17 38 views
4

蘋果data storage guidelines狀態數據「不備份」屬性的工作如下:是否在「圖書館/緩存」

2)可以再次下載或再生數據應該存儲在 /庫/緩存目錄。

...和(重點煤礦):

4)使用「不備份」屬性指定應該留在設備,即使在低存儲情況的文件。使用此屬性 以及可以重新創建的數據,但需要保留即使在低存儲情況下才能使應用正常運行,或者因爲 客戶希望在離線使用期間可以使用該數據。 此屬性 適用於標記的文件,不管它們在, (包括Documents目錄)中的目錄。 這些文件將不會被清除和 將不會包含在用戶的iCloud或iTunes備份中。由於 這些文件確實使用設備上的存儲空間,因此您的應用需要負責 以定期監視和清除這些文件。

Apple通過此主題更多地鏈接到detailed discussion的頁面沒有提及任何有關該屬性的操作,以防止緩存的數據被清除。

因此,沒有人知道,如果「不備份」屬性實際上就像「不備份,並且不要刪除」爲放置在/Library/Caches項目,或者如果文件仍然需要存儲應用程序的Documents目錄裏面確保在設備空間不足時不會刪除它們?

+0

您是否找到答案?我的應用有可下載的內容,可以重新創建,但預計可以離線使用。目前我將它存儲在「Caches」目錄中,但它被清除在低空間:(可以「不備份」屬性真的有幫助嗎?它的名字是非常令人沮喪的。 –

+1

我已經檢查過,它確實工作!標記爲NSURLIsExcludedFromBackupKey的文件未從低磁盤空間警告的/ Library/Caches目錄中刪除。 (我已經回答了) –

+0

好問題! –

回答

4

我做了關於iPhone 5的iOS 7.1.1快速測試:

我把一些文件「/庫/緩存」NSCachesDirectory),並與NSURLIsExcludedFromBackupKey屬性將它們標記。然後我以一種正常的方式將更多的大文件放到同一個目錄中。

然後,我通過使用相機應用拍攝長視頻,從而提出了較低的磁盤空間警告。 警告之後,標記爲「不備份」的文件未從緩存中刪除,但其他文件是!所以,這個屬性真的起作用了,儘管它的名字有兩個不同的東西 - 排除備份和保留在低空間警告中清除。

0

對我來說這非常明確,目錄結構是我首先要遵循的目錄結構,就像Apple說的那樣。如果您既想保存該文件又不需要備份,請將其放入文檔中,最好放在您標記的文件夾中。

即使您今天使用Caches觀察到某些行爲,它在未來可能會發生變化。

+0

啊,但觀察到的行爲是我沒有的。我試圖根據官方文件推斷應該遵守什麼行爲。這似乎表明標記爲「不備份」的文件不會被清除,而不管它們在什麼目錄中「。所以對我來說,它仍然像泥巴一樣清晰。 – aroth

+1

正確 - 如此晦澀,你做了一個測試,iOS不會被清除。但在iOS7中,它們的確如此。如果你想嘗試獲得明確的答案,請在蘋果內部論壇上發帖,但是我懷疑你會從Apple的任何人那裏得到這樣的答案。因人而異 –