2017-04-04 1 views
0

私はSwiftとプログラミングには初めてです。私はXcode 8.2.1Parse AWS(無料)サーバーを使用しています。swift 3で解析APIを使用すると、一部のクエリ結果だけが保存されますか?

具体的なobject IDsのすべてのqueryの結果を新しいparse classの1つの行に保存するために、次の構文を使用しています。

queryの結果のほとんどは、すべてのものではなく、プライマリシティークエリー、セカンドシティークエリー、都市ディテールクエリーなどのセービングです(例:マルチシークエンス)。

別のUIViewControllerと全く同じ構文を使用しています(しかし、3つだけqueries)、うまくいきます。

質問が多すぎますか?これはすべてviewDidLoadです。これを行うより良い方法があるかどうかをアドバイスしてください。

ありがとうございました!

let primaryCityQuery = PFQuery(className: "primaryCityDetails") 

    primaryCityQuery.whereKey("objectId", equalTo: passedPrimaryCityDetailsObjectIdString) 

    primaryCityQuery.findObjectsInBackground(block: { (objects, error) in 
     if let objects = objects { 


      for primaryCityQuery in objects { 

       if let primaryCity = primaryCityQuery["primaryCity"] as? String { 

        self.primaryCity = String(primaryCity) 

        print(self.primaryCity) } 

       if let primaryCountry = primaryCityQuery["primaryCountry"] as? String { 

        self.primaryCountry = String(primaryCountry) 

        print(self.primaryCountry) } 

       if let primaryState = primaryCityQuery["primaryState"] as? String { 

        self.primaryState = String(primaryState) 

        print(self.primaryState) } 

       if let numberDays = primaryCityQuery["numberDays"] as? String { 

        self.numberDays = String(numberDays) 

        print(self.numberDays) } 

       if let numberNights = primaryCityQuery["numberNights"] as? String { 

        self.numberNights = String(numberNights) 

        print(self.numberNights) } 



      } } else { 

      print(error!) 

     } }) 

    //second city info 

    let secondCityQuery = PFQuery(className: "secondCityDetails") 

    secondCityQuery.whereKey("objectId", equalTo: passedSecondCityDetailsObjectIDString) 

    secondCityQuery.findObjectsInBackground(block: { (objects, error) in 

     if let objects = objects { 

      for secondCityQuery in objects { 

       if let secondCity = secondCityQuery["secondCity"] as? String { 

        self.secondCity = String(secondCity) 

        print(self.secondCity) } 

       if let secondCountry = secondCityQuery["secondCountry"] as? String { 

        self.secondCountry = String(secondCountry) 

        print(self.secondCountry) } 

       if let secondState = secondCityQuery["secondState"] as? String { 

        self.secondState = String(secondState) 

        print(self.secondState) } 


      } } else { 

        print(error!) 

      } }) 

      // 


     let multiCityQuery = PFQuery(className: "multiCityDetails") 

        multiCityQuery.whereKey("objectId", equalTo: passedCityBeforeDetailsObjectIdString) 

        multiCityQuery.findObjectsInBackground(block: { (objects, error) in 

         if let objects = objects { 

          for multiCityQuery in objects { 

           if let beforeCity = multiCityQuery["beforeCity"] as? String { 

            self.beforeCity = String(beforeCity) 

            print(self.beforeCity) } 

           if let beforeCountry = multiCityQuery["beforeCountry"] as? String { 

            self.beforeCountry = String(beforeCountry) 

            print(self.beforeCountry) } 


           if let beforeState = multiCityQuery["beforeState"] as? String { 

            self.beforeState = String(beforeState) 

            print(self.beforeState) } 

          } } else { 

          print(error!) 

         } }) 


    let inputtedCityDetailsQuery = PFQuery(className: "primaryTripDetails") 

     inputtedCityDetailsQuery.whereKey("objectId", equalTo: primTripDetails) 

     inputtedCityDetailsQuery.findObjectsInBackground(block: { (objects, error) in 

      if let objects = objects { 

       for inputtedCityDetailsQuery in objects { 

        if let primaryTripWhen = inputtedCityDetailsQuery["primaryTripWhen"] as? String { 

         self.primaryTripWhen = String(primaryTripWhen) 

         print(self.primaryTripWhen) } 

        if let primaryTripWhatSort = inputtedCityDetailsQuery["primaryTripWhatSort"] as? String { 

         self.primaryTripWhatSort = String(primaryTripWhatSort) 

         print(self.primaryTripWhatSort) } 

        if let primaryTripWhoWith = inputtedCityDetailsQuery["primaryTripWhoWith"] as? String { 

         self.primaryTripWhoWith = String(primaryTripWhoWith) 

         print(self.primaryTripWhoWith) } 

        if let primaryTripBudget = inputtedCityDetailsQuery["primaryTripBudget"] as? String { 

         self.primaryTripBudget = String(primaryTripBudget) 

         print(self.primaryTripBudget) 



       let fullCityInput = PFObject(className: "fullCityInputRow") 

        fullCityInput["primaryCity"] = self.primaryCity 
        fullCityInput["primaryCountry"] = self.primaryCountry 
        fullCityInput["primaryState"] = self.primaryState 
        fullCityInput["secondCity"] = self.secondCity 
        fullCityInput["secondCountry"] = self.secondCountry 
        fullCityInput["secondState"] = self.secondState 

        fullCityInput["beforeCity"] = self.beforeCity 
        fullCityInput["beforeCountry"] = self.beforeCountry 
        fullCityInput["beforeState"] = self.beforeState 
        fullCityInput["primaryTripWhoWith"] = self.primaryTripWhoWith 
        fullCityInput["primaryTripBudget"] = self.primaryTripBudget 
        fullCityInput["primaryTripWhen"] = self.primaryTripWhen 
        fullCityInput["primaryTripWhatSort"] = self.primaryTripWhatSort 

        fullCityInput["numberDays"] = self.numberDays 
        fullCityInput["numberNights"] = self.numberNights 

       fullCityInput.saveInBackground(block: { (success, error) in 

          if success { 

           print("full city input row saved") 

          } else { 

           if error != nil { 

            print (error!) 
           } else { 

            print("blanks") 
           } 
          } 
         }) 

        } 
       } 

      } else { 

      print(error!) 

     } }) 
+0

ようこそSO user7811828。デバッグの助けを求める質問(「なぜこのコードは動作しませんか?」)には、目的の動作、特定の問題またはエラー、および質問自体の中でそれを再現するのに必要な最短コードが含まれていなければなりません。明確な問題文がない質問は、他の読者にとって有用ではありません。参照:最小、完全、および検証可能な例を作成する方法。 https://stackoverflow.com/help/mcve –

+0

要するに、発生したエラーと、提供したサンプルをデバッグしているときに実行した内容について説明します。 ParseとAmazonのカスタムセットアップに誰もアクセスできないと私は確信しています。これは魔法のナンバー3で止まりますか?それとも他のクエリの制限などでうまくいくのですか? –

答えて

0

ありがとう。マジックナンバーは3と思われます。このビューコントローラーに保存されていなかった値を別のビューアーに保存し、ここで3つのクエリの1つでそれらを照会します。私の入力はすべて、別のクラスの1つの行に正常に保存されるようになりました。

関連する問題