我是Swift
的新手和编程人员。我正在使用Xcode 8.2.1
和Parse 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!)
} })
答案 0 :(得分:0)
谢谢。看起来似乎神奇的数字是3.我已将未在此视图控制器中保存的值保存到另一个,然后在此处的3个查询之一中查询它们。我的所有输入现在都成功保存在另一个类的一行中。