在swift 3中使用parse API,只保存了一些查询结果?

时间:2017-04-04 03:45:27

标签: ios swift amazon-ec2 parse-server

我是Swift的新手和编程人员。我正在使用Xcode 8.2.1Parse AWS(免费)服务器。

我正在使用以下语法将特定query的所有object IDs结果保存到新parse class的一行中。

大多数query结果都是保存的(例如primarycityquery,secondcityquery,citydetailsquery),但不是全部(例如multiityquery)。

我在另一个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!)

        } })

1 个答案:

答案 0 :(得分:0)

谢谢。看起来似乎神奇的数字是3.我已将未在此视图控制器中保存的值保存到另一个,然后在此处的3个查询之一中查询它们。我的所有输入现在都成功保存在另一个类的一行中。