我在iOS上使用Akavache标准方法(实际上,它是针对Android / iOS的.NET标准项目),但问题仅出现在iOS上。
我在应用生命周期中保存了一些价值:
await BlobCache.Secure.InsertObject("user", user);
在应用程序新会话中:
var user = await BlobCache.Secure.GetObject<UserModel>("user");
但该对象不可用(KeyNotFoundException
例外)。
最近我还试图在保存对象后立即调用BlobCache.Secure.Flush().Wait()
,但仍然没有效果。
此问题仅适用于iOS。 Android很好。 Secure和UserAccount对象都会出现此问题。
即使在应用程序结束时“温和”BlobCache.Shutdown().Wait()
之后,数据也不可用。所以,现在还不知道在哪里搜索解决方案。
有什么想法可能导致这个问题以及如何解决它?
答案 0 :(得分:1)
人们遇到的另一个问题是SqlLite缓存已被链接出去。如果您在LocalMachine上检查类型,并且它的类型为MemoryCache则不会恢复。
只需在项目中的某个位置添加the linker static class(即使它是PCL或Standard库)。
对我有用。
答案 1 :(得分:0)
您是否在ApplicationName
上设置了BlobCache
属性?在iOS上,这似乎比在Android上更为必要。