[英]Core Data fetch request returning no objects for relationship fault
在我的應用程序中,我需要創建一個NSManagedObject
子類的實例,而無需將其插入上下文中。 我是這樣的:
NSManagedObjectModel *managedObjectModel = self.managedObjectContext.persistentStoreCoordinator.managedObjectModel;
NSEntityDescription *parentEntity = [[managedObjectModel entitiesByName] objectForKey:@"Parent"];
Parent *parent = (Parent *)[[NSManagedObject alloc] initWithEntity:parentEntity
insertIntoManagedObjectContext:nil];
parent.name = @"Jonny";
NSEntityDescription *childEntity = [[managedObjectModel entitiesByName] objectForKey:@"Child"];
Child *child = (Child *)[[NSManagedObject alloc] initWithEntity:childEntity insertIntoManagedObjectContext:nil];
child.name = @"Kim";
[parent child];
當用戶決定存儲對象時,我在這里這樣做:
[self.managedObjectContext insertObject:self.parent];
for (Child *child in self.parent.children) {
[self.managedObjectContext insertObject:child];
}
NSError *err = nil;
if (![self.managedObjectContext save:&err]) {
NSLog(@"error: couldn't save managed object context. %@", err);
}
當我在此處檢查children
屬性的長度時,它總是> 0
。 到現在為止還挺好。
但是,在我的下一個視圖控制器中,當我嘗試檢索這些屬性時:
- (NSMutableArray *)fetchObjects {
NSMutableArray *parents = [[NSMutableArray alloc] init];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Parent" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
NSError *error = nil;
NSArray *result = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
if (error) {
NSLog(@"Unable to execute fetch request.");
NSLog(@"%@, %@", error, error.localizedDescription);
}
else {
for (id parent in result) {
Parent *parent = (Parent *)parent;
[parents addObject:parent];
}
}
return favorites;
}
每個父級的children
屬性的長度始終為0
。 似乎無法弄清楚原因。 提前致謝。
創建托管對象並稍后保存或丟棄它們的通常模式是將它們插入臨時上下文中 。
將主上下文設為該臨時上下文的父上下文,然后save
或將其丟棄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.