2012-02-20 24 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