2017-07-27 6 views
0

これはどこでも見つかりませんでした。 Swiftでは、最近追加されたParseアイテムを取得する必要があります。これは、特定の列が非nilデータで埋められていることを示しています。最近のMOSTが1つ以上の列にnilを持つ場合、そのデータをすべて持っている次の最新の項目からデータを取得して取得する必要があります。スイフト/パース:データが入っている最新のアイテムを取得する方法?

これは、アイブ氏が試した方法です - 私は正常.order(byDescending: "createdAt")を使用して最新のアイテムを得ることができますが、私は文字列や画像を取得する必要があるということで、私はそれがで満たされたすべてのデータを持っている最新のものを選択させるカント

オブジェクト配列を反復処理してPFObjectを選択しようとしましたが、VCクラスをPFSubclassingクラスにしたくないため、これでエラーが発生しました。

//Parse - store global values 
      var query = PFQuery(className: PARSE_CLASS!) 
      query.order(byDescending: "createdAt") 
      query.limit = 1 
      query.findObjectsInBackground { 
       (objects, error) -> Void in 

       var objToUse = PFObject() 

       if error == nil { 
        //get obj 
        for o in objects! 
        { 
         if(o["testTxt"] != nil && o["testImg"] != nil) 
         { 
          objToUse = o 
         } 
        } 

        //---------------------------------------------------> 
        for item in contentLinkKeys 
        { 

    //    txtSources[item] = (objects?.first?["\(item)-blurb"] as! String) 
         if(objToUse["testTxt"] != nil && objToUse["testImg"] != nil) 
         { 

          txtSources[item] = ((objToUse["testTxt"] as! String) as! String) 

         if let validObjects = objects { 
          for object in validObjects { 
           let thumbnail = objToUse["testImg"] as? PFFile 
           thumbnail?.getDataInBackground (block: { (data, error) -> Void in 
            //read image here 
            var img = UIImage(data: data!) 
            imgSources[item] = img 

           }) 
          } 
          } 


         } //if } 

        } //for bracket 
       } 

これはどのようにすることができますか?最新の画像には何もイメージがない場合、画像は表示されません。どのようにして、繰り返し実行し、すべての列が埋め込まれている次の最新のものを見つけることができますか?

答えて

1

次のようなことができます。ここでは、作成された日付順ですべてのデータを最初に取得し、有効なもの、つまりすべての必須フィールドを持つものを除外しています。次に、画像のデータをダウンロードしてソース項目に追加します。

しかし、コレクション内に直接画像を追加または追加するのではなく、良い考えはありません。必要に応じてオブジェクトのコレクションを使用してイメージをダウンロードすることができます

+0

ありがとうございます。必要に応じて画像をダウンロードする方法の例を教えてください。上記は画像を作るための唯一の方法です – skyguy

+0

後でそれらの画像をどのように使うのかによって、 – kathayatnk

関連する問題