将 PCLStorage 用于 Xamarin 表单时,ios LocalStorage 在哪里?

Where is the ios LocalStorage when using PCLStorage for Xamarin forms?

我正在使用 PCLStorage 将图像存储在 localStorage 中并通过返回的路径访问它们。

它工作正常,但问题是,每当我再次开始调试应用程序时,都无法访问图像。

它在本地存储中实际存储图像的位置?不是固定位置吗? 我想将图像存储在文件系统中,并将相关数据和图像路径存储在 sqlite 中。它是一个离线应用程序,因此需要永久存储此数据。

对此的任何建议都会有所帮助。

谢谢

尝试以下步骤。

接口相当简单,因为我们真的只对在将图像保存到磁盘时传递字节数组和文件名感兴趣。

public interface IPicture
{
    void SavePictureToDisk (string filename, byte[] imageData);
}

DependencyService 会将图像保存委托给适当的 class。 DependencyService 的用法是:

DependencyService.Get<IPicture>().SavePictureToDisk("ImageName", GetByteArray());

在特定于平台的项目中创建 类

iOS 项目

[assembly: Xamarin.Forms.Dependency(typeof(Picture_iOS))]

namespace ImageSave.iOS
{
    public class Picture_iOS: IPicture
    {
        public void SavePictureToDisk(string filename, byte[] imageData)
        {
            var MyImage = new UIImage(NSData.FromArray(imageData));
            MyImage.SaveToPhotosAlbum((image, error) =>
            {
                //you can retrieve the saved UI Image as well if needed using
                //var i = image as UIImage;
                if(error != null)
                {
                    Console.WriteLine(error.ToString());
                }
            });
        }
    }
}

我在 Xamarin 论坛上得到了这个问题的答案,所以只是在这里更新 link 以帮助其他人。

https://forums.xamarin.com/discussion/comment/217282/#Comment_217282

如此处所述,每次我们重新部署应用程序时,核心路径都会发生变化,这就是为什么在重新部署时我无法在保存它的路径上找到图像的原因。所以现在我只保存部分路径,如 folderName\the 图像名称和我在运行时找到的其余核心路径。

这解决了我的问题。