PFObject不反映“parsing数据浏览器”中的“成功”保存的更改

我正在尝试更新一个名为messagePFObject 。 这个PFObject已经从Parse数据库中检索出来,并从另一个视图控制器传递过来。 我知道PFObject正确传递,因为我可以NSLog它的值,它是正确的。

使用下面的代码,我将一个对象添加到PFObject's键中:

 [self.message addObject:@"blah" forKey:@"didRespond"]; 

然后我尝试将更新的PFObject保存到parsing数据库:

 [self.message saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) { if (error) { NSLog(@"An error has occurred."); } }]; 

上面的方法总是callbacksucceeded值为1,并没有任何错误。 但是,当我在Parse Data Browser中查看PFObject时,它的键不包含新添加的对象。 它仍然是完全空的。

他们的关键是一个数组,所以我知道我应该使用addObject:而不是setObject:

我有几个其他parsing保存发生在这个相同的视图控制器,并在我的应用程序,他们都工作得很好,但由于某种原因,这一个不会。 我已经尝试了Parse提供的每种保存方法,包括同步save方法,但没有任何工作。

更奇怪的是,这是我的应用程序的新版本,我正在重构代码。 我的旧版本包含了PFObject代码,但令人惊讶的是同样的PFObject在这个旧代码中成功更新! 我什至尝试复制和粘贴这个代码到我的新版本,它不会工作,即使它会在旧版本。

这是从我旧版本的代码巨大的混乱。 如果您search下面的代码语句,您将能够快速find它:

 [self.message addObject:currentUsersObjectId forKey:@"didRespond"]; 

这里是完整的代码块,保存正在工作并反映在数据浏览器中。 它由几个嵌套的asynchronousparsing保存组成:

 -(void)uploadPhoto { NSLog(@"self.image.size right before upload: %@", NSStringFromCGSize(self.image.size)); NSString *fileType; NSString *halfOrFull; if(self.image != nil) { fileType = @"image"; halfOrFull = @"full"; NSData *imageData = UIImageJPEGRepresentation(self.image, 0.7); PFFile *imageFile = [PFFile fileWithName:@"Image.jpg" data:imageData]; NSString *originalSender = [[NSString alloc]init]; originalSender = [self.message objectForKey:@"senderId"]; NSLog(@"PFFile has been created: %@", imageFile); [imageFile saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) { if(error) { NSLog(@"There has been an error: %@ %@", error, [error userInfo]); UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"An error occurred!" message:@"Please try sending your message again." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alertView show]; } else { [self.afterPhotoView setHidden:YES]; PFObject *returnMessage = [PFObject objectWithClassName:@"Messages"]; [returnMessage setObject:imageFile forKey:@"file"]; [returnMessage setObject:fileType forKey:@"fileType"]; [returnMessage addObject:originalSender forKey:@"recipientIds"]; [returnMessage setObject:[[PFUser currentUser]objectId] forKey:@"senderId"]; [returnMessage setObject:[[PFUser currentUser]username]forKey:@"senderName"]; [returnMessage setObject:halfOrFull forKey:@"halfOrFull"]; NSString *originalSender = [[NSString alloc]init]; originalSender = [self.message objectForKey:@"senderName"]; [returnMessage setObject:originalSender forKey:@"originalSender"]; [returnMessage saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) { if(error) { NSLog(@"There was an error: %@ %@", error, [error userInfo]); UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"An error occurred!" message:@"Please try sending your message again." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alertView show]; } else { //Everything was successful. NSLog(@"Everything was successful."); if(succeeded == 1) { NSLog(@"Succeeded value right before 2nd save: %d", succeeded); NSString *currentUsersObjectId = [[NSString alloc]init]; PFUser *user = [PFUser currentUser]; currentUsersObjectId = user.objectId; [self.message addObject:currentUsersObjectId forKey:@"didRespond"]; [self.message saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) { if(error) { NSLog(@"There was an error: %@ %@", error, [error userInfo]); self.uploadPhotoAlertView = [[UIAlertView alloc]initWithTitle:@"An error occurred!" message:@"Please try sending your message again." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [self.uploadPhotoAlertView show]; } else { //Everything was successful. NSLog(@"Everything was successful."); if(succeeded == 1) { //[self performSegueWithIdentifier:@"segueToInbox" sender:self]; NSString *originalSender2 = [[NSString alloc]init]; originalSender2 = [self.message objectForKey:@"senderName"]; self.photoUploadAlertViewMessage = [[NSString alloc]initWithFormat:@"You just finished going halfsies with %@!", originalSender2]; //PFFile *imageFile = [self.message objectForKey:@"file"]; self.finishedImageFile = imageFile; self.finishedImageFileURL = [[NSURL alloc]initWithString:self.finishedImageFile.url]; self.uploadPhotoAlertView = [[UIAlertView alloc]initWithTitle:nil message:self.photoUploadAlertViewMessage delegate:self cancelButtonTitle:@"Sweet!" otherButtonTitles:nil]; [self.uploadPhotoAlertView show]; //[self.sharePhotoView setHidden:NO]; } //[self performSegueWithIdentifier:@"segueToInbox" sender:self]; } }]; } } }]; } }]; } }