Последняя версия (6.0.20) Akavache, кажется, частично сломана при использовании в Xamarin.iOS? - PullRequest
0 голосов
/ 08 сентября 2018

Первоначально я пытался извлечь и кэшировать изображение, используя BlobCache.LocalMachine.LoadImageFromUrl(someURL), но обнаружил, что оно просто перестал отвечать после того, как я вызвал этот метод. (Да, я установил BlobCache.ApplicationName, я даже позвонил BlobCache.EnsureInitialized(), и компоновщик SQL3 не был удален компоновщиком.) Поэтому я провел несколько экспериментов и попытался выяснить, в чем дело. После нескольких часов тестирования я обнаружил, что только мои методы должны работать в моих обстоятельствах:

1

BlobCache.LocalMachine.DownloadUrl(someURL).Wait(); // Can fetch the right image file but it won't store it into cache; The cache disappears if I restart the app
var image = BlobCache.LocalMachine.LoadImage(someURL).Wait().ToNative(); // This part is good

2

BlobCache.LocalMachine.InsertObject<string>(key, value).Wait();
var value = BlobCache.LocalMachine.GetObject<string>(key).Wait(); // This functions well; I can get the correct value right away after a restart

Кроме того, всякий раз, когда я использую await в своем коде, он падает до бесконечного тупика (?) Скажи, var value = await BlobCache.LocalMachine.GetObject<string>(key);. (Конечно, я импортировал System.Reactive.Linq.) Возможный обходной путь - использовать вместо него wait() или subscribe().

BlobCache.LocalMachine.GetOrFetchObject () также не будет работать.

P.S .: У меня последняя версия Xamarin.iOS & Mono на моем VS Mac.

Так что я упустил что-то важное при использовании Akavache в Xamarin.iOS? Пожалуйста, просветите меня.

Я опубликовал вопрос здесь .

...