2011-11-10 42 views
3

我的iOS應用程序被拒絕,因爲我使用/Document目錄來存儲下載的圖像。iOS:應用程序必須遵循iOS數據存儲?

我將在/Library/Caches目錄中移動下載的圖像來解決我的問題。

但是我的sqLite數據庫還包含用戶手動創建的元素。 此文件必須複製到/Library/Caches目錄或/Documents目錄才能被審閱者接受?

真誠, 馬克西姆

回答

1

按照iOS的存放準則(可在http://developer.apple.com/icloud/documentation/data-storage/找到),你應該把在Documents目錄,並在高速緩存目錄中的所有重新下載內容的所有用戶生成的內容。所以你應該很好地把sqLite數據庫放在那裏。

背景是,從iOS 5開始,Documents目錄被備份到iCloud。由於許多應用傾向於存儲他們的完整數據,因此iCloud備份會變得相當龐大,從而耗盡了可用空間並創建了網絡流量,這兩者都會因爲他/她想知道爲什麼會激怒用戶。爲了減輕這一負擔,蘋果現在似乎仔細研究了保存到Documents目錄中的內容,以及這是否可能是可重新生成的內容(例如可下載的文件)。

請注意,在設備上的可用空間不足時,操作系統可以並且將在iOS 5上清除Caches目錄。因此,您的應用程序不能再假設所有內容都像以前一樣,但您每次從緩存中訪問某些內容時都必須重新檢查。

+0

所以我會把我的數據庫放在/ Document目錄下,如果需要的話重新下載/ Library/caches中的圖像文件。非常感謝 :-) – Tipiweb

0

手動創建的數據可以存儲在您的應用程序目錄中。

您可以使用下面的代碼來獲取當前目錄 -

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

然後追加你的文件名來獲取完整路徑。

NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"myfile.format"] ; 
相關問題