我有一个简单的 Coredata 模型,其中一个实体称为“对话”,另一个实体称为“消息”。基本上,我需要重现 iPhone 短信应用程序。
我从消息到对话是一对一的关系,从对话到消息是一对多的关系。
Conversation{
messages<-->>Message.conversation
}
Message{
conversation<<-->Conversation.messages
}
每当我启动我的应用程序时,我的所有对话都会加载到我的 fetchedResultsController 中。如果我正确理解 Coredata 的工作原理,因为我有关系,那么链接到我的对话的每条消息也会被加载,对吗?我设置了批量大小,这样我就不会同时加载所有对话。
我的应用程序通过长拉请求连接到服务器,因此我可以随时从服务器接收消息(将添加到 coredata,然后我使用 NSNotification 告诉我的视图附加内容)。
我的问题是:当我选择一行时,我将另一个视图推送到堆栈上,以便我可以看到我的消息。我想知道如何做到这一点,这就是为什么:
• 我可以通过关系将我的NSSet 消息传递给我的视图,对吗?但是,由于我可以收到一条消息,在查看该视图时,我如何刷新传递给该视图的 NSSet?
• 我还可以在该视图中使用另一个 fetchedresultController,但在这种情况下,我会无缘无故地在我之前的视图中预加载我的所有消息?我可以告诉 coredata 不要在我之前的视图中加载它们吗?
我希望这已经足够清楚了。我有点绝望,我知道那个网站上有一些专家。如果您需要任何其他信息,请告诉我,我会尽快提供更多信息。