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