Ios 使用解析在消息传递应用程序中存储消息和讨论

Ios 使用解析在消息传递应用程序中存储消息和讨论,ios,objective-c,xcode5,parse-platform,messaging,Ios,Objective C,Xcode5,Parse Platform,Messaging,我正在使用Parse作为后端为iOS创建一个消息传递应用程序,并尝试提出存储消息/讨论的模式。存储消息是直截了当的,但人们是如何存储讨论的,因为讨论涉及一组包含一个或多个用户的消息,并且可以作为一个整体删除。这只是对messages类的一个聪明的查询,还是一个单独的整个类 使用Parse的Messages类和讨论的典型模式是什么样的 提前感谢您的帮助 还有谁能推荐一些真正好的第三方库来制作类似于Facebook Messenger的信息屏幕。Hm。。。好问题。我使用“聪明的查询”方法实现了一对一

我正在使用Parse作为后端为iOS创建一个消息传递应用程序,并尝试提出存储消息/讨论的模式。存储消息是直截了当的,但人们是如何存储讨论的,因为讨论涉及一组包含一个或多个用户的消息,并且可以作为一个整体删除。这只是对messages类的一个聪明的查询,还是一个单独的整个类

使用Parse的Messages类和讨论的典型模式是什么样的

提前感谢您的帮助


还有谁能推荐一些真正好的第三方库来制作类似于Facebook Messenger的信息屏幕。

Hm。。。好问题。我使用“聪明的查询”方法实现了一对一的消息传递,但我认为在组消息传递的情况下动态创建单独的类可能更有意义,因为为了允许灵活的参与者数量,您需要将它们存储在一个数组中;在类中查询包含数组中对象的条目是一项特别耗时的操作。因此,在一个大型消息传递类中查找用户的特定对话可能需要很多时间。我认为最好使用单独的类,每个会话都有自己的类。

如果您使用Parse作为后端,那么最好的功能就是PFRelation。对于您的_User对象,您可以拥有PFRelation类型的属性,以及讨论的目标类(您的自定义类,您可以调用任何您想要的)。Dicussions对象本身可能有一个具有某种数组的属性,有参与讨论的人,只有他们的objectid(“参与者”可能)。以及另一个保存消息“数组”的属性(从技术上讲,这是一个PFRelation属性,但如果文档告诉您,从技术上讲,这不是一个数组)。因此,要查询用户参与的讨论,您需要对讨论对象类进行查询,其中key:@“participants”equalTo:[PFUser currentUser].objectId

一个重要的注意事项是,您可以轻松地从PFRelation属性中删除/添加对象,但这些对象尚未获取,必须首先获取PFRelation中的项才能访问它们。(如果查看文档,您将看到这一点)正是出于这个原因,您必须在对PFRelation中的对象进行实际查询之前获取它们

用户数组只能包含其objectid的原因是为了避免实际获取pfrelationship中的对象所需的时间。请记住,查询数组属性时,whereKey:equalTo:方法会检查equalTo:旁边的对象是否包含在数组属性中

最后,您可以拥有一个“messages”PFRelation属性,当访问该属性时,它会将您带到提交给某个讨论对象的消息对象


去查一下你的关系,他们是你的朋友,是用直截了当的询问来解决你问题的一种方法

谢谢你的回复!您是否建议创建一个类似于讨论类的类,该类包含指向其包含的消息的指针和数组,以及fromUser和toUser等?不,我建议将消息包含在讨论类中,但将每个用户的讨论指针附加到其用户对象。我认为把讨论课和信息分开没有任何意义。。。