2016-10-14 5 views
1

私はswift 3.0でローカルパースに取り組んでいますSwiftはアプリケーションをオフラインにする方法を解析しますか?

私はサーバから結果を得るためにquerysをやっています。接続がない場合は、接続が失われているため、最終結果が表示されません。

ので、私は何をしたいことは何も接続

これがない場合は、それを表示するには、クエリの結果を保存することであることは、クエリです:

var query = PFUser.query() 

     query = PFQuery(className: "_User") 

     // query?.fromLocalDatastore() 


     query!.whereKey("objectId", equalTo: PFUser.current()!.objectId!) 
     query!.findObjectsInBackground { 
      (objects , error) -> Void in 

      if error == nil { 

       for object in objects! { 


       self.usernamelbl.text = object["username"] as! String 

       if let userp = PFUser.current()?["photo"] as? PFFile { 

        userp.getDataInBackground { 
         (imageData, error) -> Void in 

         if error == nil { 

          self.profilepic.image = UIImage(data: imageData!)! 
         } 
        } 
        } 
       } 

今、私は結果を保存し、オフラインでそれらを表示する方法アプリが閉鎖されている場合もですか? 何か助けていただければ幸いです

+0

ここにはさまざまなオプションがあります。私はあなたがユーザーの画像を保存しようとしていると思いますか?これをファイルに保存するか、必要に応じてアプリケーションのCoreDataに保存することができます。あなたがしたいことはあなた次第です。 – c0d3Junk13

+0

ありがとう、私はユーザー情報を保存し、他のユーザーからのビデオ、画像、メッセージを受け取るつもりです。彼はまだそれらをオフラインモードでチェックすることができます。何か案が? – Salah

答えて

2

特定のPFQueryコールのキャッシュポリシーを設定することができます。コピーをディスクに保存し、別のネットワークヒットを行う前にそれに依存するには、kPFCachePolicyCacheElseNetworkポリシーを設定します。

しかし、このParse questionによると、明らかに、これらのキャッシュが許可されているサイズにはかなり厳しい制限があります。私はそれらがオープンソース版のParseにまだ適用されているかどうかは分かりませんが、ディスクにさらに情報を保存したい場合は、Core Data、SQLite、Realmなどの専用のデータ永続性フレームワークを使用することが適切な場合があります私はRealmのために働いています:))

イメージファイルの目的のため、ディスク上のキャッシュを手動で管理することをお勧めします。サイズ制限のために、これをParseのキャッシュに保存するのではなく、 。そこにいくつかの素晴らしい画像キャッシングライブラリがあります(PINCacheのように)非常に簡単です。

+0

ああありがとう、それは難しい作業だと私はそれについて、そしてそれがどのように動作するのか分からない、おそらく私はPINCacheがどのように動作するかを見るでしょう。ありがとうございました! – Salah

関連する問題