我的iOS應用程序被拒絕,因爲我使用/Document
目錄來存儲下載的圖像。iOS:應用程序必須遵循iOS數據存儲?
我將在/Library/Caches
目錄中移動下載的圖像來解決我的問題。
但是我的sqLite數據庫還包含用戶手動創建的元素。 此文件必須複製到/Library/Caches
目錄或/Documents
目錄才能被審閱者接受?
真誠, 馬克西姆
我的iOS應用程序被拒絕,因爲我使用/Document
目錄來存儲下載的圖像。iOS:應用程序必須遵循iOS數據存儲?
我將在/Library/Caches
目錄中移動下載的圖像來解決我的問題。
但是我的sqLite數據庫還包含用戶手動創建的元素。 此文件必須複製到/Library/Caches
目錄或/Documents
目錄才能被審閱者接受?
真誠, 馬克西姆
按照iOS的存放準則(可在http://developer.apple.com/icloud/documentation/data-storage/找到),你應該把在Documents目錄,並在高速緩存目錄中的所有重新下載內容的所有用戶生成的內容。所以你應該很好地把sqLite數據庫放在那裏。
背景是,從iOS 5開始,Documents目錄被備份到iCloud。由於許多應用傾向於存儲他們的完整數據,因此iCloud備份會變得相當龐大,從而耗盡了可用空間並創建了網絡流量,這兩者都會因爲他/她想知道爲什麼會激怒用戶。爲了減輕這一負擔,蘋果現在似乎仔細研究了保存到Documents目錄中的內容,以及這是否可能是可重新生成的內容(例如可下載的文件)。
請注意,在設備上的可用空間不足時,操作系統可以並且將在iOS 5上清除Caches目錄。因此,您的應用程序不能再假設所有內容都像以前一樣,但您每次從緩存中訪問某些內容時都必須重新檢查。
手動創建的數據可以存儲在您的應用程序目錄中。
您可以使用下面的代碼來獲取當前目錄 -
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
然後追加你的文件名來獲取完整路徑。
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"myfile.format"] ;
所以我會把我的數據庫放在/ Document目錄下,如果需要的話重新下載/ Library/caches中的圖像文件。非常感謝 :-) – Tipiweb