parse.com澄清ACL(未找到更新的对象)

时间:2013-07-10 16:48:22

标签: ios parse-platform

我收到错误“错误:找不到更新的对象(代码:101,版本:1.2.9)”

有人告诉我,当当前用户没有写入相关对象的权限时,通常会返回此错误。“

请帮助我确保我理解ACL。我的代表中有以下代码:

PFACL *defaultACL = [PFACL ACL];
[defaultACL setPublicReadAccess:YES];
[PFACL setDefaultACL:defaultACL withAccessForCurrentUser:YES];

(1)这也意味着对于我在当前会话期间创建的任何PFObject,只有当前用户才能对该对象进行更改,除非我通过当前用户的会话指定其他允许的用户写访问?

(2)我将使用以下代码(来自解析文档)做什么?

PFObject *groupMessage = [PFObject objectWithClassName:@"Message"];

PFACL *groupACL = [PFACL ACL];

// userList is an NSArray with the users we are sending this message to.

for (PFUser *user in userList) {

    [groupACL setReadAccess:YES forUser:user];
    [groupACL setWriteAccess:YES forUser:user];
}

groupMessage.ACL = groupACL;

[groupMessage saveInBackground];

(3)现在假设我有一个全新的PFUser,我希望能够在当前会话期间编辑现有的PFObject,但是谁不包含在该现有对象的ACL中。如何让该用户编辑对象?我是否必须使用云代码将他添加到ACL列表中?一个代码示例将不胜感激。

谢谢。

2 个答案:

答案 0 :(得分:0)

  1. 是的,您列出的ACL提供当前用户的写访问权限和全局读访问权限。使用此ACL,您需要明确决定还有谁应具有写访问权。
  2. 听起来您正在寻找角色为您提供的那种动态群体评估。如果您为角色对象(例如管理员角色)授予写入权限,则在向角色添加或删除用户时,所有对象的权限都将受到影响(无需额外的API调用)。

答案 1 :(得分:-1)

使用createWithoutData设置引用的对象帮助我解决了这个问题。

myObject.put("item", ParseObject.createWithoutData(<SUB CLASS>.class, <Your object item>));
myObject.saveInBackground();