Akavache: сохраненное значение недоступно после перезапуска приложения iOS

Я использую стандартный подход Akavache на iOS (на самом деле это проект.NET Standard для Android/iOS), но проблема возникает только с iOS.

Я сохраняю некоторую ценность в течение жизненного цикла приложения:

    await BlobCache.Secure.InsertObject("user", user);

А в приложении новая сессия это:

    var user = await BlobCache.Secure.GetObject<UserModel>("user");

Но объект недоступен (с KeyNotFoundException исключение).

Недавно я тоже пытался позвонить BlobCache.Secure.Flush().Wait() сразу после сохранения объекта, но эффекта все равно нет.

Проблема возникает только с iOS. Андроид в порядке. Проблема возникает с объектами Secure и UserAccount.

Данные недоступны даже после "нежного" BlobCache.Shutdown().Wait() на закрытие приложения. Так что даже не представляю, где искать решение сейчас.

Любые мысли, почему может вызвать эту проблему и как я могу решить ее?

2 ответа

Еще одна проблема, с которой столкнулись люди, заключается в том, что кеш SqlLite становится связанным. Если вы проверите тип в LocalMachine и он имеет тип MemoryCache, он не будет устойчивым.

Просто добавьте статический класс компоновщика где-нибудь в вашем проекте (даже если это PCL или Standard lib).

Это сработало для меня.

Вы установили ApplicationName собственность на BlobCache? На iOS это кажется скорее необходимостью, чем на Android.

Другие вопросы по тегам