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

时间:2017-09-13 06:51:23

标签: xamarin.ios xamarin.forms portable-class-library

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

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

实际上它将图像存储在本地存储中?它不是永久性的位置吗? 我想在sqlite中将图像存储在fileSystem和相关数据和图像路径中。它是一个离线应用程序,因此需要永久存储这些数据。

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

由于

2 个答案:

答案 0 :(得分:1)

尝试以下步骤。

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

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

DependencyService会将图像保存委派给相应的类。 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());
                }
            });
        }
    }
}

答案 1 :(得分:0)

我在Xamarin论坛上得到了这个问题的答案,所以只需更新这里的链接,这样就可以帮助其他人了。

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

正如这里所解释的那样,每当我们重新部署应用程序时,核心路径都会改变,这就是重新部署的原因,我无法在保存它的路径上找到图像。所以现在我只保存部分路径,比如folderName \图像名称和我在运行时找到的核心路径的其余部分。

这解决了我的问题。