2017-10-17 4 views
0

Je construis une application en utilisant l'analyse où les utilisateurs peuvent cliquer en annotation dans une carte et voir une image de cet endroit. Mon problème est avec le bouton de blocage ... Cela ne fonctionne pas, quand l'utilisateur clique sur le bouton de blocage, il ne devrait voir aucune annotation de l'utilisateur qu'il bloque mais cela ne fonctionne malheureusement pas.Comment bloquer les utilisateurs dans mon application (swift + parse)

Voici mon bouton de bloc:

@IBAction func blocking(_ sender: Any) { 
    let block = PFObject(className: "blocking") 

    block["me"] = PFUser.current()?.username 
    block["poster"] = post?.name 
    block["posterID"] = post?.id 

    block.saveInBackground { (succ, error) in 
     if error != nil { 

      print("rttot") 
     } else { 

      self.performSegue(withIdentifier: "mo", sender: nil) 
     } 
    } 
} 

(notez l'ID d'affiche est l'ID de personne qui affichent la photo et l'affiche est le nom de la personne qui a fait le poste)

Cette L'action lancera une relation entre l'utilisateur et l'utilisateur qui bloque. maintenant je ne montrerai aucun post qui détient la personne que je bloque ID.

let queryy = PFQuery(className: "blocking") 
    queryy.whereKey("me", equalTo: PFUser.current()?.username) 
    queryy.findObjectsInBackground { (objects, error) in 
     if error != nil { 

      print("error") 

     } else { 



      for object in objects! { 
       if let neww = object.object(forKey: "posterID") { 


    var query = PFQuery(className: "posts") 
    query.whereKey("id", notEqualTo: neww) 
     query.findObjectsInBackground { (objects, error) in 
     if error != nil { 

      print("error") 

      } else { 



       for object in objects! { 

        let post = Posts() 

        post.chosen = object.object(forKey: "chosen") as! String 

        post.lati = object.object(forKey: "lati") as! Double 
        post.longi = object.object(forKey: "longi") as! Double 
       post.image = object.object(forKey: "image") as? PFFile 
        post.text = object.object(forKey: "text") as! String 
       post.name = object.object(forKey: "name") as! String 
        post.uid = object.object(forKey: "uid") as! String 
       post.id = object.object(forKey: "id") as! String 



       print("999") 

       var cord = CLLocationCoordinate2D(latitude: post.lati, longitude: post.longi) 


       let anno = annoClass(cord: cord, post: post, text: "Destination", subText: "ClickMe") 

       self.myMap.addAnnotation(anno) 


      } 



      } 

    } 
    } 

        } 

       } 

      } 

Comme vous pouvez le voir prendra l'ID de gens que je suis le blocage et ne présentant pas de leurs postes dans la carte, mais cela ne fonctionne pas. L'application ne montre aucune erreur ou bug btw.

Répondre

0

Essayez cette

queryy.whereKey("User_has_Blooked", equalTo: false) // if its equal to true, it should not show the users. make this object in the same class when you fetch users in the map!