【问题标题】:How do I share an object with another user using Parse with iOS?如何使用 Parse with iOS 与其他用户共享对象?
【发布时间】:2013-02-26 23:01:42
【问题描述】:

我浏览了 parse.com 上的一些教程,我对用户创建对象并将它们存储在 Parse 中没有问题。

我不知道如何将对象传递给另一个用户。因此,例如,如果我有用户有自己的待办事项列表,而一个朋友想要添加到另一个用户的待办事项列表中,我将如何去做呢?所以一个用户会创建对象:

PFObject *task = [PFObject objectWithClassName:@"ToDo"];
[task setObject:@"Do the dishes" forKey:@"userName"];
[task save];

但我希望该用户将任务传递给他们的朋友,因此当他们的朋友启动应用程序时,他们会看到该任务已添加到他们的列表中。

我也在使用 Facebook SDK,所以如果那里有什么可以提供帮助的东西,我可以使用它。

我以前没有使用过 Core Data,所以我希望通过 parse 处理大量后端工作,这样我可以暂时避免学习曲线。

感谢大家的帮助

我想补充一点,我不一定要寻找“答案”。我只是以前没有做过这样的事情,所以我不知道在哪里看。

【问题讨论】:

    标签: ios objective-c xcode facebook parse-platform


    【解决方案1】:

    您想为此使用用户指针和 ACL。

    // assume PFUser *assigned 
    PFACL *acl = [PFACL ACLWithUser:PFUser.currentUser];
    [acl setReadAccess:YES forUser:assigned];
    PFObject *todo = [PFObject objectWithClassName:@"Todo"];
    todo[@"task"] = @"Wash dishes";
    todo[@"user"] = assigned;
    todo.ACL = acl;
    [todo saveInBackground];
    

    现在,您可以使用

    查看所有 TODO
    [PFQuery queryWithClassName:@"Todo"];
    

    您可以查看分配给您的所有查询

    [query whereKey:@"user" equalTo:PFUser.currentUser];
    

    只有 TODO 的创建者可以编辑它。

    【讨论】:

    • 如果我想为多个用户分配 TODO 可能吗?
    【解决方案2】:

    您似乎在这里有一个多对多的关系:一个用户可以拥有许多 todo 对象,而一个 todo 对象可以由多个用户拥有。

    这种方法可以用PFRelation 对象处理。在这里查看官方博客文章:http://blog.parse.com/2012/05/17/new-many-to-many/

    【讨论】:

    • 这可行。唯一的事情是,制作待办事项的初始用户将其发送给他/她的朋友。待办事项现在是他们的朋友,并且只有他们的朋友可以看到。但是,我也会将其设为只读,这样朋友就不能“删除”发送给他们的待办事项。不过,我会看看 PFRelation 对象!谢谢!
    • 如果要控制删除,也可以使用 beforeDelete 云代码触发器手动阻止。查看blog.parse.com/2013/08/22/deleting-objects的博客文章
    【解决方案3】:

    在这种情况下,我不会将其视为多对多关系。

    创建 todo 对象的人应该是唯一的所有者。你可以给 todo 对象添加一个属性,它的类型可以是一个数组。然后,该阵列可以跟踪与谁共享它。如果与之共享的人删除了它,您可以将它们从数组中删除,或者如果所有者删除它,则可以删除该对象。

    【讨论】:

      猜你喜欢
      • 2013-07-12
      • 1970-01-01
      • 2013-08-25
      • 1970-01-01
      • 2018-07-13
      • 2020-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多