2016-01-26 2 views
0

В моем коде есть цикл, который переходит в массив и добавляет все объекты внутри этого массива в другой массив. Объекты внутри второго массива - это то, что показано внутри tableview. Поэтому каждый раз, когда я просматриваю цикл, я добавляю объект во второй массив. После этого цикла я перезагружаю tableview, но иногда он не показывает все объекты ?! Я думаю, это потому, что он начинает перезагружать код, который выполняется, даже если процесс добавления еще не закончен? Как я могу перезагрузить табличное представление ПОСЛЕ того, что еще сделано? Вот мой код, я использую Parse, поэтому запрос выполняется с сервера синтаксического анализа и возвращает мне массив. matesIdsAndNames - словарь, остальные - массивы.reload tableview не отображает все объекты

if mateUserObject.isEmpty == false{ 

    for mateId in mateUserObject{ 



     let date = NSDate() 
     let dateInt = date.timeIntervalSince1970 

     let query = PFQuery(className: "calendarEvents") 
     query.whereKey("createdBy", equalTo: mateId) 
     query.whereKey("StartDate", lessThan: dateInt) 
     query.whereKey("EndDate", greaterThan: dateInt) 
     query.cachePolicy = .NetworkOnly 
     query.findObjectsInBackgroundWithBlock({ (objects:[PFObject]?, error:NSError?) -> Void in 

      if error != nil{ 
       print(error) 
      }else{ 

       if objects?.isEmpty == true{ 
        self.freeMateIds.append(mateId.objectId!) 
        print(self.freeMateIds) 
        if self.mateUserObject.last == mateId{ 


         if self.freeMateIds.isEmpty == false{ 


          for freeMate in self.freeMateIds{ 

           let oneFreeMate = self.matesIdsAndNames[freeMate] 
           self.freeMateNames.append(oneFreeMate!) 
           print(self.freeMateNames) 
          } 

         } 
         self.MatesTableView.reloadData() 

        } 

       } 

      } 


     }) 



    } 


} 

}

+1

Я настоятельно рекомендую вам отредактировать этот вопрос и добавить код. Если ваш вопрос легче читать и имеет конкретный код, вы 1) получите больше глазных яблок и 2) получите более качественные ответы. – Adrian

+0

Я бы усовершенствовал вопрос, разместив соответствующие разделы вашего кода (конечно, не весь исходный файл) – sylvanaar

+0

Прочитанный в Grand Central Dispatch (GCD) вы найдете ответ на свой вопрос ... и/или разместите вопрос, показывающий код, который вы имеете в виду – MikeG

ответ

0

Вы добавление объектов в массив из нескольких фоновых процессов, но быстрые массивы не являются поточно. Один из вариантов - это «безопасный массив с быстрым потоком» Google и использование некоторых примеров кода.

+0

okay Я попробую, спасибо! –

Смежные вопросы