2016-08-18 142 views
1

我有一个非常令人沮丧的问题,试图将我的数据保存到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个其他部分,正在向成功发送数据解析。这只是上述代码的一个问题。

回答

1

这行代码是从价值得到一个AnyObject,然后又值设置为AnyObject

object.valueForKey("firstName")?.setValue(self.nameField.text!, forKey: "firstName") 

你可能想将该值设置为你的原始对象。用以下代替上述行:

object.setValue(self.nameField.text!, forKey: "firstName") 
+0

谢谢。这有助于 –

+0

@DavidSanford乐于提供帮助 – penatheboss