2013-07-10 39 views
2

我得到了错误“错误:没有找到对象的更新(代码:101,版本:1.2.9)”parse.com澄清的ACL(没有找到对象的更新)

有人告诉我,这个错误“通常会在当前用户无权写入相关对象的情况下返回。”

请帮我确保我了解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列表中?代码示例将不胜感激。

谢谢。

回答

0
  1. 是的,您列出的ACL提供当前用户写入访问和全局读取访问。有了这个ACL,你需要明确地决定还有哪些人应该有写权限。
  2. 这听起来像你正在寻找一种角色为你提供的动态群体评估。如果您向角色对象(例如管理员角色)授予写入权限,则在向角色添加或删除用户时,所有对象的权限都将受到影响(无需其他API调用)。
+0

感谢您澄清1&2。这两点是为了确保在潜入#3之前我有我的方位。 #3我不知道该怎么做。重申一下,我正在谈论的是让刚刚添加为PFUser的全新用户可以写入已有的PFObjects。情况是这样的:在这些朋友创建账户之前,用户可以在交谈中包括Facebook朋友。我通过FacebookID跟踪。当这些朋友注册时,他们需要被授予对特定对话对象的写入权限。我认为为每个对话创建一个角色并不实际。 – mkc842

-1

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

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