-1

尝试创建一个基于 Parse 的 iOS 应用程序,该应用程序使用“共享按钮”和以下代码在后台保存对象:

- (IBAction)share:(id)sender
{
    if (self.chosenImageView.image)
    {
        NSData *imageData = UIImagePNGRepresentation(self.chosenImageView.image);
        PFFile *photoFile = [PFFile fileWithData:imageData];
        PFObject *photo = [PFObject objectWithClassName:@"Photo"];
        photo[@"image"] = photoFile;
        photo[@"whoTook"] = [PFUser currentUser];
        photo[@"title"] = self.titleTextField.text;
        [photo saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error)
        {
            if (!succeeded)
            {
                [self showError];
            }
        }];
    }
    else
    {
        [self showError];
    }
    [self clear];
    [self.tabBarController setSelectedIndex:0];
}

获取“NSInvalidArgumentException”,原因:“不能将 nil 用于 PFObject 上的键或值。将 NSNull 用于值。”错误。

请帮忙......

4

1 回答 1

2

这是键值编码的一个非常基本的部分(无论您是否使用 Parse)。请查看 Apple 关于KVCNSDictionaryNSArray的文档。

在这种特殊情况下,以下值之一:photoFile[PFUser currentUser]self.titleTextField.textnil

您应该检查输入的有效性,如下所示:

if (photoFile != nil) {
    photo[@"image"] = photoFile;
} else {
    // handle the case where 'photoFile' doesn't exist.
}
于 2014-12-08T04:19:34.250 回答