Ios NSFetchRequest:FetchBatchSize和故障行为

Ios NSFetchRequest:FetchBatchSize和故障行为,ios,objective-c,xcode,core-data,Ios,Objective C,Xcode,Core Data,我是新的核心数据,所以如果这是一个愚蠢的问题,很抱歉 有没有办法在通过访问NSManagedObject关系触发错误而生成的自动获取请求上设置fetchBatchSize属性 例如,假设我有一个“公司”实体和一个“员工”实体,从“公司”到“员工”有一对多的关系。我发出获取请求以检索所有公司,然后对于一家公司,我希望加载其员工 显而易见的方法是这样做: NSSet *employees = [anyCompany employees]; 但是,如何设置fetchBatchSize属性以确保不同时

我是新的核心数据,所以如果这是一个愚蠢的问题,很抱歉

有没有办法在通过访问NSManagedObject关系触发错误而生成的自动获取请求上设置fetchBatchSize属性

例如,假设我有一个“公司”实体和一个“员工”实体,从“公司”到“员工”有一对多的关系。我发出获取请求以检索所有公司,然后对于一家公司,我希望加载其员工

显而易见的方法是这样做:

NSSet *employees = [anyCompany employees];
但是,如何设置fetchBatchSize属性以确保不同时加载太多数据


提前感谢。

fetchBatchSize只定义了在到永久存储的一次往返中要检索多少条记录。例如,如果一个实体有1000个条目,而批处理大小为20,那么获取所有条目的获取请求将实际执行50条SQL语句

很明显,根据获取的上下文,这不是很有效。如果内存出现问题,您可以使用批处理大小校准获取请求,但在大多数情况下,您确实不必太在意它。但是,不必要的多次往返商店很可能会影响性能

所以用一个像

aCompany.employees

并让核心数据处理内存管理。它通常只检索显示或计算实际需要的实体和属性。

NSSet*employees=[anyCompany employees]
不获取数据,它返回“关系错误”。只有在访问集合中某个对象的属性时,才会触发错误,并在必要时从存储中提取此对象的属性。