Ios 核心数据获取实体

Ios 核心数据获取实体,ios,core-data,entity,relationship,fetch,Ios,Core Data,Entity,Relationship,Fetch,我有一个很基本的问题。 如果我有两个实体,它们之间有一个关系(假设entityOne与entityTwo有一个对多关系)。 当我获取entityOne时,它会自动获取其关系吗?或者我也必须获取它们并将它们分配给相应的实体吗 我认为在聊天中问这个问题会更好,因为这是一个简单的问题,但我还没有必要的声誉 因为我的问题太短,所以无法发布,所以我只想问另一个问题 在同一个项目中,我有一个rootViewController来获取实体。现在,如果我想添加一个事件,我必须将用户发送到另一个视图,带有文本字段

我有一个很基本的问题。 如果我有两个实体,它们之间有一个关系(假设entityOne与entityTwo有一个对多关系)。 当我获取entityOne时,它会自动获取其关系吗?或者我也必须获取它们并将它们分配给相应的实体吗

我认为在聊天中问这个问题会更好,因为这是一个简单的问题,但我还没有必要的声誉

因为我的问题太短,所以无法发布,所以我只想问另一个问题

在同一个项目中,我有一个rootViewController来获取实体。现在,如果我想添加一个事件,我必须将用户发送到另一个视图,带有文本字段等等。我最终为每个ViewController创建了一个数组“eventArray”,因为我找不到更有效的方法。 假设我在rootViewController中有一个NSMutableArray*eventsArray,在addEventViewController中,我还有一个NSMutableArray*eventsArray,它是在按下addEventViewController之前设置的(addEventViewController.eventsArray=self.eventsArray)。
我如何更有效地执行此操作?我敢肯定这不是正确的做法。

在回答第一个问题时:

这种情况由核心数据自动处理,这种机制称为“断层”。苹果有。简单地说,相关对象不会被提取,但是当您尝试访问它们时,核心数据将自动从持久存储中检索它们

当然,在某些情况下,逐个获取相关对象(例如,可能是为了在表中显示有关相关对象的信息)可能会降低应用程序的速度

在这种情况下,您可以使用
NSFetchRequest
上的方法预先检索这些对象。这都是一个平衡内存使用和性能的问题


故障处理是核心数据的一个非常重要的部分,我强烈建议您仔细阅读文档,以确保您对故障处理的方式和时间有很好的了解。

有关故障处理部分,请参见@paulbailey answer。对于传递数组,我不同意paul的观点,并认为你做得对。您并没有增加内存使用,因为您只是在长时间传递指针。您这样做的方式使得对象之间的耦合更加松散,这是很好的,可以进行适当的测试。如果你只是在你的应用程序委托中有一个数组(一个单件),你实际上有一个全局变量,这将使测试变得更加困难,并将减少对对象的任何潜在重用。是的,我没有在appDelegate中使用变量,因为Paul Hegarty说使用appDelegate不是一个好主意。很高兴我用正确的方式做了所有好的方面,我会从我的答案中删去那些愚蠢的地方。