ios - 使用 Parse 在消息传递应用程序中存储消息和讨论

标签 ios objective-c xcode5 parse-platform messaging

我正在使用 Parse 作为后端为 iOS 创建一个消息应用程序,并且我正在尝试提出用于存储消息/讨论的架构。存储消息很简单,但人们如何存储讨论,因为讨论涉及一个或多个用户的一组消息,并且可以作为一个整体删除。这只是消息类的巧妙查询,还是整个类本身?

使用 Parse 的 Messages 类和讨论的典型架构是什么样的?

预先感谢您的帮助!

PS。谁能推荐任何非常好的第三方库来制作类似于 Facebook Messenger 的消息屏幕。

最佳答案

如果您使用 Parse 作为后端,那么最适合您的功能是 PFRelation。对于您的 _User 对象,您可以拥有 PFRelation 类型的属性,以及 Discussions 的目标类(您的自定义类,您可以随意调用它)。一个 Dicussions 对象本身可能有一个带有某种数组的属性,其中包含参与该讨论的人,只有他们的 objectId(可能是“参与者”)。另一个属性保存消息“数组”(从技术上讲,这是一个 PFRelation 属性,但如果文档会让您知道,这在技术上不是一个数组)。因此,要查询用户所属的讨论,您需要对 Discussions 对象类进行查询,其中Key:@"partcipants"equalTo:[PFUser currentUser].objectId

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

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

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

去查找 PFRelations,他们是您的 friend ,是通过直接查询解决您的问题的方法。

关于ios - 使用 Parse 在消息传递应用程序中存储消息和讨论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24345127/

相关文章:

ios - 有什么方法可以在最新版本的 iOS 上使用不同团队 ID 签名的白名单应用程序之间安全地共享凭证?

iphone - 如果值大于 10,则使用一个函数处理该值每 10 个,然后使用另一个函数处理该值的其余部分

ios - 如何关闭 MMTransitionAnimator 中的 View

ios - 如何通过 objective-c (对于对话页面)增加表格 View 中的标签或 TextView 大小(高度和宽度)你能帮帮我吗?

ios - 如何为通用应用程序制作自动布局

ios - 如何从 AppDelegate.m 访问 tabBarController?

ios - 以编程方式更改现有的 UIBlurEffect UIBlurEffectStyle?

ios7 - iOS7 中的 UIMenuController

c++ - exc_bad_access 错误 xcode5 c++ sdl2

iOS,将文件从收件箱文件夹复制到文档路径