我正在尝试从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"
。
我该如何解决这个问题?
似乎问题来自于对象(图像)来自用户类的事实,我是对的吗?
答案 0 :(得分:9)
为什么要对所有用户进行查询,然后仅针对当前用户进行删除,这是构建查询的最糟糕方式(并且最有可能失败)。
如果当前用户没有返回前100个代码,则上述代码永远不会找到匹配。
此类查询应该使用getObjectInBackgroundWithId:block:
来完成,但对于当前用户,您已经拥有该对象,只需执行此操作:
[[PFUser currentUser] deleteInBackground];
如果您只想删除列中的信息,请使用以下命令:
PFUser *currentUser = [PFUser currentUser];
[currentUser removeObjectForKey:@"imageOne"];
[currentUser saveInBackground];