在Parse.com中从用户类中删除对象

时间:2014-08-17 19:18:55

标签: ios parse-platform pfquery

我正在尝试从Parse.com的imageOne列中删除连接到当前用户的图像。来自用户类。

PFQuery *query = [PFUser query];
[query selectKeys:@[@"imageOne"]];
[query getObjectInBackgroundWithId:[[PFUser currentUser] objectId] block:^(PFObject *object, NSError *error) {
    if (!error) {
        [object deleteInBackground];
    }
}];

我的代码不起作用,控制台会记录此错误"User cannot be deleted unless they have been authenticated via logIn or signUp"

我该如何解决这个问题?

似乎问题来自于对象(图像)来自用户类的事实,我是对的吗?

1 个答案:

答案 0 :(得分:9)

为什么要对所有用户进行查询,然后仅针对当前用户进行删除,这是构建查询的最糟糕方式(并且最有可能失败)。

如果当前用户没有返回前100个代码,则上述代码永远不会找到匹配。

此类查询应该使用getObjectInBackgroundWithId:block:来完成,但对于当前用户,您已经拥有该对象,只需执行此操作:

[[PFUser currentUser] deleteInBackground];

如果您只想删除列中的信息,请使用以下命令:

PFUser *currentUser = [PFUser currentUser];
[currentUser removeObjectForKey:@"imageOne"];
[currentUser saveInBackground];