mardi 4 août 2015

swift: "for" loop and "if" statement return four arrays with one element instead of one array with four elements

I have an array of NSDate. I am filtering this array with a timeIntervalSinceDate to only keep specific ones. After looping through the array, and submitting an "if" statement to compare the elements in the array with others, I intend to append the desired ones into a new array.

However, after the whole process, it returns an array of one element every time, returning all the right elements, but in separate arrays every time. Instead of having one array of four elements, I end up with four arrays of one.

Here are the codes:

  var query = PFUser.query()

query!.whereKey("username", equalTo: PFUser.currentUser()!.username!)

query!.findObjectsInBackgroundWithBlock { (objects, NSError) -> Void in

if let objects = objects as? [PFObject] {

        for member in objects {

          if member["Network"] != nil {

                var acceptedMembers: [String] = member["Network"] as! [String]

               self.usernames = acceptedMembers


  var query = PFUser.query()

  query.findObjectsInBackgroundWithBlock({ (objects2, error2) -> Void in

  if let objects2 = objects2 as? [PFUser] {

                        for otherUser in objects2 {

   if contains(self.usernames, otherUser.username!) {

                           self.nameMember = otherUser.username!

                            self.setName()


                            var otherUserElement: AnyObject? = otherUser["myElement"]

                                    if otherUserElement != nil {

                                var OUEL = otherUserElement as! NSArray


                                var currentUserElement: AnyObject? = PFUser.currentUser()!["myElement"]

                                         if currentUserElement != nil {

                                var CUEL = currentUserElement as! NSArray

                                 var count = CUEL.count




                                   for point1 in OUEL {

                                        var arrayPoint1 = point1 as! NSArray

                                        var elem1: AnyObject = arrayPoint1[0]

                                        var elem11: AnyObject = arrayPoint1[1]

                                        var time1: AnyObject = arrayPoint1[2]


                                        self.element11 = elem1 as! Double
                                        self.element111 = elem11 as! Double
                                        self.date1 = time1 as! NSDate



                                        for point2 in CUEL {

                                            var arrayPoint2 = point2 as! NSArray

                                            var elem2: AnyObject = arrayPoint2[0]

                                            var elem22: AnyObject = arrayPoint2[1]

                                            var time2: AnyObject = arrayPoint2[2]


                                            self.element22 = lat2 as! Double
                                            self.element222 = long2 as! Double
                                            self.date2 = time2 as! NSDate

                                            self.tryPoint = point2 as! [AnyObject]




                                          self.Y.append(self.tryPoint)


                                            let compo = self.cal.components(.CalendarUnitSecond | .CalendarUnitMinute | .CalendarUnitHour | .CalendarUnitDay | .CalendarUnitMonth, fromDate: self.date2)


                                            self.second = compo.second

                     let unit2:NSCalendarUnit = .CalendarUnitSecond

                                            let components = self.cal.components(unit2, fromDate: self.date1, toDate: self.date2, options: nil)

      var range = -15...15

      if (self.element11 == self.element22) && (self.element111 == self.element222) && contains(range, components.second) {

      self.dateX.append(self.date2)

      var countArray = [NSDate]()

     if NSDate().timeIntervalSinceDate(self.date2) <= 86400 {

                                                for n in self.dateX {

                                                    if n == self.date2 {

                                                     countArray.append(n)

                                                    } } }



} } }}}}}}   })
}}}}

Do you have any idea of what might cause this issue ? Why would it return different arrays for each element every time instead of one array with all ?

Thank you very much,



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire