2016-08-18 88 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