Parse.com指针数组或PFRelation

时间:2015-03-06 18:26:58

标签: ios objective-c parse-platform

请帮帮我。我正在使用社交网络应用程序。我想创建PFObject“组”。用户可以关注它。但只有其他参与者可以将其他用户添加为成员。

据我所知,我可以使用PFRelation类开发以下功能。 但请告诉我,如何将其他用户添加到组中来开发功能?用户是受保护的类,因此我无法将PFRelation添加到其他用户。因此,只有一种方法是将用户添加到另一个用户的组中,是指针的创建数组?

有什么想法?感谢

1 个答案:

答案 0 :(得分:1)

因此,您希望在用户和组之间创建多对多关系,并且只有已经是给定组成员的用户才能将新用户添加到该组中吗?

如果是这样,我会怎么做......

  1. 创建群组

    // Create the group and add its creator as the sole group member
    PFUser * user = [PFUser currentUser];
    PFObject * group = [[PFObject alloc] initWithClassName:@"Group"];
    PFRelation * members = [group relationForKey:@"members"];
    [members addObject:user];
    
    // Set an ACL so that the group is visible but only the 
    PFACL * acl = [PFACL ACL];
    [acl setPublicReadAccess:true];
    [acl setWriteAccess:true forUser: user];
    group.ACL = cal
    
  2. 添加新的群组成员

    PFUser * member = [PFUser currentUser];
    PFUser * candidate = ...; // not yet a member 
    PFObject * group = ...; // The group candidate wants to join
    PFRelation * members = [group relationForKey:@"members"];
    [members addObject:candidate];
    [group.ACL setWriteAccess:true forUser:candidate];
    
  3. 在步骤2中,成员是组的成员,因此具有添加新用户候选者所需的写入权限。 在第2步之后,候选人现在是一名正式成员,并获得了对该组的写入权限。

    但是我没有测试过这个: - 关系"是否继承"来自该组的ACL?或者任何可以阅读该组的人都可以访问该关系,然后将自己添加到该组中?

    同样难以区分成员之间的角色。我认为现在任何成员都可以决定删除该组......

    您可能最好在应用程序级别执行规则。