Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 聊天、对话、消息传递-CoreData模型_Ios_Objective C_Core Data_Data Modeling - Fatal编程技术网

Ios 聊天、对话、消息传递-CoreData模型

Ios 聊天、对话、消息传递-CoreData模型,ios,objective-c,core-data,data-modeling,Ios,Objective C,Core Data,Data Modeling,在将问题标记为的副本之前,请阅读说明。我不需要在评论中继续讨论 所以我想为短信应用程序创建CoreData模型。正如我在本主题中提到的,我有三个实体: 用户实体定义消息作者和对话参与者 消息实体定义应用程序发送的每个文本 Conversation实体定义用户使用消息进行的对话 好的,我的数据模型如下: 但这里的一切都是相互联系的。上述答案和我的解决方案之间的唯一区别是用户和消息使用一对多关系连接。我想我需要它,因为没有它,就不可能知道谁在对话中写了什么 但据我所知,当所有东西都相互连接时,数据

在将问题标记为的副本之前,请阅读说明。我不需要在评论中继续讨论

所以我想为短信应用程序创建
CoreData
模型。正如我在本主题中提到的,我有三个实体:

  • 用户
    实体定义消息作者和对话参与者
  • 消息
    实体定义应用程序发送的每个文本
  • Conversation
    实体定义用户使用消息进行的对话
  • 好的,我的数据模型如下:

    但这里的一切都是相互联系的。上述答案和我的解决方案之间的唯一区别是
    用户
    消息
    使用一对多关系连接。我想我需要它,因为没有它,就不可能知道谁在对话中写了什么

    但据我所知,当所有东西都相互连接时,数据模型是没有意义的

    因此,这里的关键目标是:

  • 在对话屏幕中,我想知道谁写了什么
  • 在一次对话中,至少可以有两个用户参与
  • 该消息仅为文本
  • 用户必须能够列出他的所有对话
  • 就这样


    请验证当前的解决方案,并随时提出批评。

    据我所知,
    用户
    对话
    之间不需要多对多关系

    如果用户希望获取其所有对话,则可以使用此获取请求:

    User* user = //get some user you like conversations for
    NSFetchRequest* r = [NSFetchRequest fetchRequestWithEntityName:@"Conversation"];
    r.predicate = [NSPredicate predicateWithFormat:@"ANY messages.author = %@",user];
    
    同样,您可以获得给定对话的所有用户。

    您可以将其建模为每个实体上的获取属性(
    User
    Conversation


    <> P> <强>您应该考虑将<代码>聊天> /代码>关系> <代码>消息< /代码> <强>

    考虑使用FuxDeD属性或包含Objd的正常属性,从而使作者关系不必要。参与者也可以这样做。