2012-02-20 26 views
1

我的應用程序創建多個項目時首次推出,並將它們保存到/圖書館/緩存/縮略圖的MonoTouch:項目保存到/圖書館/緩存永遠呆在身邊

該應用程序的偉大工程。

當我殺了應用程序,然後重新運行它,那些文件不再有了。這在模擬器中不會發生。

我設置了no-not-backup屬性,但仍然在應用程序在手動關閉後運行時,緩存爲空。

有沒有辦法讓緩存持續一點時間。這是數據不是由用戶創建的,因此不能放入/ Documents。

+0

這是意想不到的。我會嘗試複製這個。由於(IIRC)'app/Library/Caches /'永遠不會被iTunes備份(afaik它也被模擬器忽略),所以** do-not-backup **標誌不應該改變任何東西。你能編輯你的問題來說明正在使用什麼版本的iOS? – poupou 2012-02-20 21:35:58

回答

1

在我的FinishedLaunching方法中添加以下代碼會在每次執行時顯示一個新文件(包括設備和模擬器上)。

string appdir = NSBundle.MainBundle.BundleUrl.Path; 
    string cache = Path.GetFullPath (Path.Combine (appdir, "..", "Library", "Caches")); 
    Console.WriteLine ("Files:"); 
    int i = 0; 
    foreach (string file in Directory.GetFiles (cache, "*.txt")) 
      Console.WriteLine ("{0}. {1}", i++, file); 
    string fname = Path.Combine (cache, i.ToString() + ".txt"); 
    File.WriteAllText (fname, "cache this for later"); 

所以它看起來像iOS的decided to purge的數據以回收設備(新功能 iOS 5中)的部分空間。這不會發生在每個用戶/設備上(如果有足夠的空間可用),但令人遺憾的是,我不知道iOS如何計算這一點。

拒收備份將不利於(Caches是從來沒有備份),除非你保存你的數據裏面Documents但這種情況可能會導致你的其他問題,以及(WRT的AppStore)。對於缺少更好的答案,我建議你像(上一個鏈接)博客作者一樣填寫bug report

+1

App Store不喜歡使用/ Documents,它正在消失/緩存。好吧,有時間有一個新的方法。我很高興我使用MonoTouch,所以它很容易,快速和穩定。 – 2012-02-21 00:51:46

+0

我的MonoTouch應用程序也被拒絕使用/ Documents存儲可重新映射的圖像,所以我需要切換到Library/Caches以及 – 2012-02-26 23:29:57