2017-09-13 13 views
1

PCLStorageを使用してlocalStorageにイメージを格納し、返されたパスを介してそれらにアクセスしています。XamarinフォームにPCLStorageを使用する場合のios LocalStorageはどこですか?

問題はありませんが、アプリケーションをデバッグするたびにイメージにアクセスできなくなります。

実際にはローカルストレージにイメージを保存しますか?恒久的な場所ではありませんか? ファイルシステムに画像を保存し、関連するデータと画像パスをsqliteに保存します。そのオフラインアプリケーションでは、このデータを永続的に保存する必要があります。

これにはどんな提案も役に立ちます。

ありがとうございました

答えて

0

私はこれだけXamarinフォーラムでこの質問に対する答えを得ましたここでリンクを更新すると、他の人を助けることができます。

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

としては、そのたびに、我々はコアパスが再デプロイの私は、私はそれを保存したパス上の画像を見つけることができなかった理由のthatsを変更するアプリを再デプロイここで説明します。だから私はfolderName \イメージ名と私が実行時に見つけるコアの残りの部分のような部分的なパスを保存しています。

これは私の問題を解決しました。

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()); 
       } 
      }); 
     } 
    } 
} 
+0

ご返信ありがとうございます。私はそれが依存サービスを使用してそれを行うことができることを知っています。しかし、ちょうどここで説明されているPCLStorageについて知りたがっていますhttps://github.com/dsplaisted/PCLStorage。これは私にとってうまくいっていますが、私が直面している唯一の問題は、アプリケーションを再デバッグするときに画像にアクセスできないことです。それ以外の場合は、アプリを終了し、デバイスでアプリを起動した後、正常に動作します。だから私は実際にどこのPCLStorageがイメージを格納しているのか理解したいと思いますか? –

関連する問題