我想取两个实体,例如:学生与email
attribute
和教授,两者具有相同的父实体如:人与attributes
entityId, firstName and lastName
我要生成它们两节使用NSFetchedResultsController
。 这里是吸气剂一部分fetchedResultsController
核心数据不返回完整对象,数据:<fault>
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setFetchBatchSize:20];
[fetchRequest setReturnsObjectsAsFaults:NO];
NSEntityDescription *description = [NSEntityDescription entityForName:@"Person"
inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:description];
NSSortDescriptor *firstNameDescriptor = [[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES];
NSSortDescriptor *lastNameDescriptor = [[NSSortDescriptor alloc] initWithKey:@"lastName" ascending:YES];
[fetchRequest setSortDescriptors:@[firstNameDescriptor, lastNameDescriptor]];
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc]
initWithFetchRequest:fetchRequest
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:@"entityId"
cacheName:nil];
所有Students
具有相同entityId
和所有Professors
太
在的tableView我有两个原型细胞之一Student
,另一个用于Professor
。
,我得到两个部分预期,但学生在不同的部分,我已经印在这样的控制台fetchedResultsController
所有对象,po [self.fetchedResultsController objectAtIndexPath: [NSIndexPath indexPathForItem:1 inSection:1]]
所有的教授都印有fault
:
<Professor: 0x6080000befc0> (entity: Professor; id: 0xd0000000001c0002 <x-coredata://03A3ECAD-CCA7-424E-86F9-258D25372BA1/Professor/p7> ; data: <fault>)
我已经迫使使用[request setReturnsObjectsAsFaults:NO]
获取请求返回完整对象,但它没有效果。
为什么会这样呢?
发生了什么事ns如果您尝试获取这些对象的其中一个属性的值,而不是仅打印该对象? –
在实际尝试使用获取实体的任何字段之前,核心数据不会加载所有数据是很正常的。 – alexburtnik
如果我在代码NSLog(@“%@”,profesor.firstName)中打印它们;它打印 – astrolka