将数据保存到Parse
问题描述:
我有一个非常令人沮丧的问题,试图将我的数据保存到Parse。将数据保存到Parse
通常情况下,这是我要做的最简单的部分,但这个实例正在取得最好的效果。
我有搜索很多试图找到问题的地方,但没有运气。没有数据正在发送给Parse(实际上是back4apps.com)
Person是为保存本地记录而创建的类。
func saveToParse() {
let addressQuery = PFQuery(className: "addressBook")
print ("Saved UUID to Parse is: \(addressUUID)")
if person!.uuid != nil
{
print ("Has UUID")
addressQuery.whereKey("uuid", equalTo: person!.uuid!)
addressQuery.getFirstObjectInBackgroundWithBlock {(objects: PFObject?, error: NSError?) -> Void in
if error != nil {
if let object = objects {
object.valueForKey("firstName")?.setValue(self.nameField.text!, forKey: "firstName")
object.valueForKey("lastName")?.setValue(self.lastNameField.text!, forKey: "lastName")
object.valueForKey("phone")?.setValue(self.phoneField.text!, forKey: "phone")
object.valueForKey("email")?.setValue(self.emailField.text!, forKey: "email")
object.valueForKey("addressCity")?.setValue(self.addressCityField.text!, forKey: "addressCity")
object.valueForKey("addressCountry")?.setValue(self.addressCountryField.text!, forKey: "addressCountry")
object.valueForKey("entryFrom")?.setValue("Divelog Update", forKey: "entryFrom")
let addressBookImageData = UIImageJPEGRepresentation(self.addressBookImageAdd!.image!, 0.5)
let addressBookImageFile = PFFile(name: "addressBookImage.jpg", data: addressBookImageData!)
object ["addressBookImage"] = addressBookImageFile
// object.saveEventually()
object.saveInBackgroundWithBlock {
(success: Bool, error: NSError?) -> Void in
if (success) {
print ("parse save successful")
} else {
print ("parse failed")
print (error)
}
}
} else {
print (error)
}
}
}
} else {
print ("No UUID found")
let addressObject = PFObject(className: "addressBook")
addressObject["firstName"] = self.nameField.text!
addressObject["lastName"] = self.lastNameField.text!
addressObject["phone"] = self.phoneField.text!
addressObject["email"] = self.emailField.text!
addressObject["addressCity"] = self.addressCityField.text!
addressObject["addressCountry"] = self.addressCountryField.text!
addressObject["username"] = PFUser.currentUser()!.username
addressObject["uuid"] = addressUUID
addressObject["entryFrom"] = "Divelog New"
let addressBookImageData = UIImageJPEGRepresentation(self.addressBookImageAdd!.image!, 0.5)
let addressBookImageFile = PFFile(name: "addressBookImage.jpg", data: addressBookImageData!)
addressObject ["addressBookImage"] = addressBookImageFile
// addressObject.saveEventually()
addressObject.saveInBackgroundWithBlock {
(success: Bool, error: NSError?) -> Void in
if (success) {
print ("parse save successful")
} else {
print ("parse failed")
print (error)
}
}
}
}
另外,这个应用程序有2个其他部分,正在向成功发送数据解析。这只是上述代码的一个问题。
答
这行代码是从价值得到一个AnyObject
,然后又值设置为AnyObject
object.valueForKey("firstName")?.setValue(self.nameField.text!, forKey: "firstName")
你可能想将该值设置为你的原始对象。用以下代替上述行:
object.setValue(self.nameField.text!, forKey: "firstName")
谢谢。这有助于 –
@DavidSanford乐于提供帮助 – penatheboss