swift我应该在哪里添加tableview.reload以从第一次单击按钮获取数据?

swift我应该在哪里添加tableview.reload以从第一次单击按钮获取数据?,swift,cloudkit,Swift,Cloudkit,下面是我从icloudkit获取图像的代码,但是现在我必须单击UIbutton“getAlbum”两次才能在表视图中显示图像。那么,我是否在错误的位置添加了tableview.reload()m?请告知 @IBAction func getAlbum(_ sender: AnyObject) { //Below line to dismiss the keyboard. textEntercode.resignFirstResponder() if (self.textEntercode.t

下面是我从icloudkit获取图像的代码,但是现在我必须单击UIbutton“getAlbum”两次才能在表视图中显示图像。那么,我是否在错误的位置添加了tableview.reload()m?请告知

@IBAction func getAlbum(_ sender: AnyObject) {

//Below line to dismiss the keyboard.
textEntercode.resignFirstResponder()

if (self.textEntercode.text == "")
    {
        let alert = UIAlertController(title: "No Code Entered", message: "Please enter photos code", preferredStyle: .alert)
        alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.cancel, handler: nil));
        //event handler with closure

        present(alert, animated: true, completion: nil);
  }
else    //G
 {

    // let code: Int64 = Int64(self.textEntercode.text!)!
    var photoCode = textEntercode.text!
    // convert the characters to upper case before getting data from database
    photoCode = photoCode.uppercased()
    var count = 0

    let Container = CKContainer.default()
    let database = Container.publicCloudDatabase
    let predicate = NSPredicate(value: true)
    let query = CKQuery(recordType: "Photos", predicate: predicate) //Photos    is table name in cloudkit server
    //-------Fetch the data---------------------

    database.perform(query, inZoneWith: nil) {  //A
        records, error in
        if error != nil {  //B
                 print(error?.localizedDescription ?? 10)
              }  // B
        else {  //C

              count = (records?.count)!
              print("countttttt \(count)")
              for myrecord in records!
                {  //D
                   self.Saveddata.append(myrecord as CKRecord)
                    //self.tableview.reloadData()
                 }  //D


            let Queue = OperationQueue.main
            Queue.addOperation() { //E
                self.tableview.reloadData()
            }  //E


        }  //C

        }  //A


    } //G

位置是正确的(在重复循环之后),但是使用
DispatchQueue.main.async{}
而不是
Queue.addOperation(){}
但是我使用NSoperation来获取数据-可以吗?没有解决它-我尝试过,但在这种情况下保持
OperationQueue