2013-10-11 57 views
0

我正在開發一個iOS應用程序,它必須支持iOS 5+。我已閱讀iOS Data Storage Guidelines以準備提交的應用程序,並在Stackoverflow中閱讀關於這些準則的幾個問題和解決方案,但我仍然對如何處理此問題存在一些疑問。向後兼容的應用程序的iOS數據存儲指南問題

我有一個sqlite數據庫,其表格在.sqlite文件中定義。當應用程序啓動時,我將此文件複製到\Documents文件夾中,並且我始終在\Documents中保留此文件。該數據庫首先包含應用程序可能需要的一些固定數據集合(需要選擇的城市列表及其類似內容),其餘部分是將要下載的依賴於用戶的數據。我讀過這篇文章:Apps must follow the iOS Data Storage Guidelines or they will be rejected in app that contains .sqlite3,但我仍然不知道應該採用什麼標準。 .sqlite不可下載,它包含在Xcode項目的支持文件中,並且一些初始數據是從應用程序內部插入的,並且它既不可下載。依賴於用戶的數據,我可以隨時下載。我沒有在我的應用程序中集成任何iCloud的東西。那麼,是否應該始終將.sqlite文件保存在文檔中? AFAIK,你需要文件來執行所有數據庫操作...

正如我所說,我沒有在我的應用程序中包含任何iCloud相關代碼,事實上我不知道如何管理iCloud因爲我從來沒有告訴過要這樣做,無論如何是應用程序的備份?我應該使用iOS Data Storage Guidelines所說的標誌來防止文件備份嗎?我需要一些關於備份和iCloud注意事項的指導。

還有一件事:我的應用程序還下載一些用戶相關的圖像。我在整個應用程序的幾個視圖中顯示他們,所以我需要他們在應用程序的正常工作時堅持。但是,它是可下載的內容。那麼,我應該在哪裏放置它們?

非常感謝!

回答

0

我相信你的.sqlite文件應該在Documents中,這是它的正確位置。

您下載的圖片應該可能位於緩存中,但只要您設置了「不備份」屬性,您也可以在文檔中使用它們。

您可以設定跳過備份屬性是這樣的:

BOOL success = [url setResourceValue: [NSNumber numberWithBool: skip] 
            forKey: NSURLIsExcludedFromBackupKey error: &error]; 
+0

謝謝!我如何設置該屬性? – AppsDev

+0

因爲我沒有與iCloud集成,我應該在'Documents'中設置所有文件的屬性嗎? – AppsDev

+0

將代碼添加到設置屬性的答案中。不,你不應該把它設置在一切,因爲這將從電話備份中排除文件,你一定希望你的數據庫備份。 –

相關問題