'NSInvalidArgumentException',原因:'不能在PFObject上使用nil作为键或值。使用NSNull表示值。 (以前的答案不解决它)

时间:2015-01-26 14:38:24

标签: ios objective-c parse-platform pfobject

我有我的应用程序,用户发布的内容和其他用户可以评论, 然后,我使用" SendYourOpinion"存储该方法的方法

 - (IBAction)SendYourOpinion:(id)sender {

        PFObject *opinion = [PFObject objectWithClassName:@"Opinions"];
        opinion[@"content"] = self.txtFieldOpinion.text;
        opinion[@"userId"] = [PFUser currentUser];
        [opinion saveInBackground];

    }

出现标题中的错误,然后我读了之前的答案,我没有解决我的问题

2 个答案:

答案 0 :(得分:1)

self.txtFieldOpinion.text[PFUser currentUser]nil

您需要检查nil并指定一个对象。您不能将nil指定为值(如您收到的错误消息中所述)。

    PFObject *opinion = [PFObject objectWithClassName:@"Opinions"];
    opinion[@"content"] = self.txtFieldOpinion.text ? self.txtFieldOpinion.text : [NSNull null];
    opinion[@"userId"] = [PFUser currentUser] ? [PFUser currentUser] : [NSNull null];
    [opinion saveInBackground];

答案 1 :(得分:0)

表示没有赋值(nil),当您尝试分配硬编码值或Parse无法解析的类型时,很可能。例如,如果您具有类型为BOOLEAN

的对象的属性

object[@"status"] = FALSE或0(您将收到错误消息)

正确:

NSNumber* status = [NSNumber numberWithBool:NO]; //passing FALSE as status
object[@"status"] = status;

Parse会将其解析为通过类型分配的值并解析它