2017-07-27 4 views
0

Ok, je ne l'ai trouvé nulle part. Dans Swift, j'ai besoin de l'élément Parse le plus récemment ajouté qui a 2 colonnes remplies avec des données non nulles. Si le plus récent a 1 ou plusieurs colonnes qui est nul, j'ai besoin de la requête pour "sélectionner" et obtenir les données de l'élément le plus récent suivant qui a toutes ses données.Swift/Parse: comment obtenir l'élément le plus récent contenant des données?

Ceci est la façon dont Ive a essayé -. Je peux obtenir avec succès l'article le plus récent en utilisant la .order(byDescending: "createdAt") mais étant que je dois obtenir des chaînes et des images, je ne peux pas faire ce sélectionner le plus récent qui a toutes ses données remplies dans

J'ai essayé de parcourir le tableau d'objets et de sélectionner un PFObject mais cela a créé une erreur car je ne veux pas faire de la classe VC une classe 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 
       } 

Comment puis-je faire cela? En ce moment, si le plus récent a une image nulle ou autre chose, il ne vient pas afficher une image. Comment puis-je lui faire savoir que je vais parcourir et trouver la prochaine plus récente qui a toutes les colonnes remplies?

Répondre

1

vous pouvez faire quelque chose comme ce qui suit. Qu'est-ce qui se passe ici, c'est que nous sommes d'abord aller chercher toutes les données dans l'ordre de date créé, puis filtrer ceux qui sont valides, c'est-à-dire ceux qui ont tous les champs requis. Ensuite, nous téléchargeons les données pour l'image et l'ajoutons à l'élément source. Mais au lieu d'ajouter ou d'ajouter une image directement dans la collection, ce n'est pas une bonne idée. Vous pouvez utiliser des collections d'objets et télécharger l'image si nécessaire.

+0

Merci, je vais certainement mettre cela à utiliser. Pourriez-vous donner un exemple de la façon dont vous téléchargez l'image en cas de besoin? Ci-dessus est la seule façon dont je pourrais faire l'image à travers – skyguy

+0

Dépend de la façon dont vous allez utiliser ces images plus tard? – kathayatnk