我想取兩個實體,例如:學生與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