2

我收到错误“错误:找不到更新的对象(代码: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 列表中?一个代码示例将不胜感激。

谢谢你。

4

2 回答 2

0
  1. 是的,您列出的 ACL 为当前用户提供了写入权限和全局读取权限。使用此 ACL,您需要明确决定还有谁应该拥有写访问权限。
  2. 听起来您正在寻找角色为您提供的那种动态组评估。如果您向角色对象(例如管理员角色)授予写入权限,那么当您向角色添加或删除用户时,所有对象的权限都会受到影响(无需额外的 API 调用)。
于 2013-07-16T22:52:49.700 回答
-1

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

myObject.put("item", ParseObject.createWithoutData(<SUB CLASS>.class, <Your object item>));
myObject.saveInBackground();
于 2014-07-21T09:11:21.587 回答