MonoTouch: элементы, сохраненные в / Library / кэши, которые никогда не остаются - PullRequest
1 голос
/ 21 февраля 2012

Мое приложение создает несколько элементов при первом запуске и сохраняет их в / Library / Caches / Thumbnails

Приложение прекрасно работает.

Когда я убиваю приложение и перезапускаю его, этих файлов больше нет. Это не происходит в симуляторе.

Я установил атрибут no-not-backup, но при запуске приложения после выключения вручную кэш-память пуста.

Есть ли способ продлить срок действия кэша? Эти данные не созданы пользователем, поэтому их нельзя поместить в /Documents.

1 Ответ

1 голос
/ 21 февраля 2012

При добавлении следующего кода в мой метод 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 решил очистить данные, чтобы освободить место на вашем устройстве (новая функция в iOS 5). Это не произойдет для каждого пользователя / устройства (если достаточно места доступно), но, к сожалению, я не знаю, как iOS вычисляет это.

Не делать резервное копирование не поможет (Caches никогда не резервируется), если вы не сохраните свои данные внутри Documents, но это может вызвать и другие проблемы (в AppStore). Чтобы не найти лучшего ответа, я предлагаю вам то же, что и (предыдущая ссылка) автора блога, заполните сообщение об ошибке .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...